Ersetzen von Umgebungsvariablen mit dem Befehl EnvSubst Linux

Ersetzen von Umgebungsvariablen mit dem Befehl EnvSubst Linux

Das Speichern sensibler Details in einer Datei als einfacher Text ist riskant. In einigen Fällen, in denen Sie die Werte von Variablen halten müssen, besteht die beste Option darin, sie aus der Konsole zu ersetzen. Wenn Sie ein Automatisierungsskript oder andere Dateien wie YAML schreiben, ersetzt das EnvSubst die Variablen leicht. Wir werden sehen, wie Sie das in diesem Artikel vorgehen können.

Wie funktioniert die Umwelt??

Das Envsubst erledigt die Variablen. Es sucht nach Mustern aus der Eingabe, und wenn es eine Übereinstimmung findet, ersetzt es es durch den variablen Wert. Wenn das Muster keine entsprechende Übereinstimmung ergibt, ersetzt es es durch eine leere Zeichenfolge.

Die grundlegende Syntax ist wie folgt:

1
$ envsubst [Option] [Shell-Format]

Variablen in einer Datei ersetzen

Angenommen, Sie haben eine einfache Textdatei mit Variablen, die nur bei der Verwendung der Datei festgelegt werden müssen. Der EnvSubst kann den Job perfekt umgehen.

Lassen Sie uns a erstellen Probe Probe.TXT -Datei und erstellen zwei Variablen für die Benutzername und Passwort.

Um EnvSubst zu verwenden, müssen wir zunächst die Werte für die beiden Variablen exportieren:

1
2
3
$ export userername = "kaila"
$ export password = ”pasword”

Mit den exportierten Variablen können Sie jetzt den Befehl envsubst aufrufen:

1
$ envsubst < sample.txt

Unsere Ausgabe für diesen Fall ist:

Sie haben EnvSubst erfolgreich verwendet, um die Variablenwerte in einer Datei zu ersetzen.

Du kannst auch ungehindert die Variablen durch Eingabe ungehindert, gefolgt vom variablen Namen. Wenn Sie den EnvSubst erneut ausführen, wird die Datei ohne die zuvor festgelegten Werte angezeigt. Schauen Sie sich Folgendes an:

Wenn Sie nicht möchten, dass das EnvSubst die Ausgabe im Arbeitsbereich anzeigt, können Sie sie mit dem kombinieren weniger Befehl.

1
$ envsubst < sample.txt | less

Rohrleitungs -Envsubst -Substitution zu einer anderen Datei

Möglicherweise müssen Sie die Ausgabe auch in eine andere Datei einleiten, anstatt sie auf der Konsole anzuzeigen. Lassen Sie uns beispielsweise eine Konfigurationsdatei erstellen, die Sie auf Ihrer Website veröffentlichen oder mit einem Bot ausführen können. In diesem Fall können Sie keine vertraulichen Details als Klartext hinzufügen. Die Lösung besteht darin, EnvSubst zu verwenden.

Ein ... kreieren Sampleconfig.Conf -Datei und fügen Sie den Text wie im folgenden Bild hinzu:

User_password =

1
$ nano sampleconfig.Conf

Unsere Datei sieht so aus:

Lassen Sie uns unsere Variablen exportieren.

Um das EnvSubst zu verwenden, während die Ausgabe in eine neue Datei verlegt wird, lautet der Befehl wie folgt:

1
$ envsubst < sampleconfig.conf >Ausgabe1.txt

Wenn wir den Inhalt des Ausgabe1.txt, Wir sehen, dass der Befehl beim Ersetzen der Variablen funktioniert.

Angabe der zu ersetzenden Variablen

Bisher haben wir gesehen, wie man die Variablen mit einem Dollarzeichen ersetzt. Es ist möglich, zwei oder mehr Variablen festzulegen und zu exportieren. Aber wir können die spezifischen nur ersetzen.

Erstellen wir eine ähnliche Datei wie früher und fügen Sie zwei weitere Variablen hinzu.

Fahren Sie fort, um die Variablen zu exportieren.

Um anzugeben, welche Variable ersetzt werden soll, stellen Sie ihren Namen fest und stellen Sie sicher, dass sie die einzelnen Apostrophes verwenden, um die Substitution zu verhindern.

In unserem Fall ersetzen wir die Benutzer1.

1
$ envsubst '$ user1' ' < sampleconfig.conf

Sie können auch zwei Variablen ersetzen, wie im Folgenden gezeigt:

1
$ envsubst '$ user1, $ userername' < sampleconfig.conf

Sie müssen die Variablen nur mit einem Komma trennen und mit einem einzelnen Apostroph die beiden Variablen einschließen, wie im folgenden Beispiel gezeigt:

Abschluss

Der Befehl envsubst linux ist ein großartiges Tool, um Ihre Variablen in den Dateien zu ersetzen. Es ist hilfreich, wenn Sie vertrauliche Informationen wie Passwörter maskieren und sie nur bei Bedarf ersetzen müssen. Das Gute mit EnvSubst ist, dass Sie es mit verschiedenen Dateitypen verwenden, seine Ausgabe in eine andere Datei leiten oder sogar als Eingabe für einen anderen Befehl verwenden können.

Wir haben den Umweltbefehl in diesem Leitfaden behandelt, und die Beispiele helfen Ihnen dabei, die Verwendung mit Leichtigkeit zu visualisieren und zu verstehen.