GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Umgebungsvariablen in einer Datei durch ihre tatsächlichen Werte ersetzen?

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.


Linux
  1. Umgebungsvariablen der Oracle-Datenbank und ihre Funktionen

  2. Benutzerumgebungsvariablen Mit „su“ und „sudo“ unter Linux

  3. Warnung mit nftw

  4. Wie ersetzt man sed wie Text durch Python?

  5. tr Befehl - wie man die Zeichenfolge \n durch einen tatsächlichen Zeilenumbruch (\n) ersetzt

Ersetzen Sie unter Linux du durch Staub

So verwenden Sie Umgebungsvariablen mit Helm-Diagrammen

Verbesserte Linux-Sicherheit mit Advanced Intrusion Detection Environment (AIDE)

Lum – Gemeinsame Werte in zwei Dateien gemäß erster Spalte ersetzen?

Linux-Umgebungsvariablen

Ersetzen von Umgebungsvariablen in einer Eigenschaftendatei