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.