Gibt es eine einfache Möglichkeit, Umgebungsvariablen in einer Datei zu ersetzen/auszuwerten? Nehmen wir an, ich habe eine Datei config.xml das enthält:
<property>
<name>instanceId</name>
<value>$INSTANCE_ID</value>
</property>
<property>
<name>rootPath</name>
<value>/services/$SERVICE_NAME</value>
</property>
…etc. Ich möchte $INSTANCE_ID ersetzen in der Datei mit dem Wert der INSTANCE_ID Umgebungsvariable $SERVICE_NAME mit dem Wert von SERVICE_NAME Umgebungsvar. Ich weiß nicht a priori, welche Umgebungsvariablen benötigt werden (oder besser gesagt, ich möchte das Skript nicht aktualisieren müssen, wenn jemand eine neue Umgebungsvariable zur Konfigurationsdatei hinzufügt). Danke!
Akzeptierte Antwort:
Sie könnten envsubst verwenden (Teil von gnu gettext ):
envsubst < infile
ersetzt die Umgebungsvariablen in Ihrer Datei durch ihren entsprechenden Wert. Die Variablennamen dürfen ausschließlich aus alphanumerischen ASCII-Zeichen oder Unterstrichen bestehen, dürfen nicht mit einer Ziffer beginnen und dürfen nicht leer sein; andernfalls wird eine solche Variablenreferenz ignoriert.
Um nur bestimmte Umgebungsvariablen zu ersetzen, siehe diese Frage.