Existuje snadný způsob, jak nahradit/vyhodnotit proměnné prostředí v souboru? Řekněme, že mám soubor config.xml který obsahuje:
<property>
<name>instanceId</name>
<value>$INSTANCE_ID</value>
</property>
<property>
<name>rootPath</name>
<value>/services/$SERVICE_NAME</value>
</property>
…atd. Chci nahradit $INSTANCE_ID v souboru s hodnotou INSTANCE_ID proměnná prostředí, $SERVICE_NAME s hodnotou SERVICE_NAME env var. Nebudu a priori vědět, které proměnné prostředí jsou potřeba (nebo spíše nechci aktualizovat skript, pokud někdo přidá novou proměnnou prostředí do konfiguračního souboru). Díky!
Přijatá odpověď:
Můžete použít envsubst (součást gnu gettext ):
envsubst < infile
nahradí proměnné prostředí ve vašem souboru jejich odpovídajícími hodnotami. Názvy proměnných se musí skládat výhradně z alfanumerických znaků nebo znaků ASCII, nesmí začínat číslicí a nesmí být prázdné; jinak je takový odkaz na proměnnou ignorován.
Chcete-li nahradit pouze určité proměnné prostředí, přečtěte si tuto otázku.