envsubst ersetzt Umgebungsvariablen in einer Shell-Zeichenfolge oder einem Skript. Wenn es ohne Optionen verwendet wird, kopiert es stdin nach stdout und ersetzt alle Zeichenfolgen der Umgebungsvariablen, wie z. B. $VARIABLE oder ${VARIABLE}, durch den entsprechenden Wert der Umgebungsvariablen. „Mein Editor ist $EDITOR“ würde also in „Mein Editor ist /usr/bin/emacs“ umgewandelt werden. Die Angabe eines Shell-Formats beschränkt die Ersetzungen auf die Variablen, auf die im Shell-Format verwiesen wird.
envsubst-Befehlszeilenoptionen
Der Befehl envsubst hat sehr wenige Optionen, wie unten gezeigt:
Option | Beschreibung |
---|---|
-h, –Hilfe | Hilfenachricht drucken und dann beenden. |
-v, –Variablen | Variablen anzeigen, auf die im Shell-Format verwiesen wird, und dann beenden. |
-V, –version | Versionsinformationen drucken und dann beenden. |
Wenn Sie beim Ausführen des Befehls envsubst eine Fehlermeldung wie unten gezeigt erhalten:
envsubst: command not found
Sie können versuchen, gettext zu installieren Paket gemäß Ihrer Wahl der Distribution.
Verteilung | Befehl |
---|---|
OS X | brew install gettext |
Debian | apt-get install gettext-base |
Ubuntu | apt-get install gettext-base |
Alpin | apk gettext hinzufügen |
Arch Linux | pacman -S gettext |
Kali-Linux | apt-get install gettext-base |
CentOS | yum install gettext |
Fedora | dnf install gettext |
Raspbian | apt-get install gettext-base |
envsubst-Befehlsbeispiele
1. Umgebungsvariablen in stdin ersetzen und auf stdout ausgeben:
$ echo '$HOME' | envsubst
2. Umgebungsvariablen in einer Eingabedatei ersetzen und auf stdout ausgeben:
$ envsubst < path/to/input_file
3. Umgebungsvariablen in einer Eingabedatei ersetzen und in eine Datei ausgeben:
$ envsubst < path/to/input_file > path/to/output_file
4. Ersetzen Sie Umgebungsvariablen in einer Eingabedatei aus einer durch Leerzeichen getrennten Liste:
$ envsubst '$USER $SHELL $HOME' < path/to/input_file