Heim >Backend-Entwicklung >Golang >Wie übergebe ich Umgebungsvariablen an „exec.Command' in Go?
Übergabe von Umgebungsvariablen an exec.Command
Beim Erstellen eines Wrapper-Skripts für ein Befehlszeilentool mit exec.Command können Situationen auftreten Hier müssen Sie im Rahmen der Befehlsausführung eine Umgebungsvariable übergeben. In diesem Zusammenhang arbeiten Sie mit ansible-playbook und benötigen die Verwendung eines Parameters MY_VAR.
Die exec.Command-Funktion akzeptiert ein Array von Zeichenfolgen als ersten Parameter, wobei das erste Element den Befehl darstellt ausführen. Um eine Umgebungsvariable zu übergeben, können wir den Bereich der Umgebungsvariablen in der Cmd-Struktur ändern.
In Ihrem Fall haben Sie Probleme beim Überschreiben aller Umgebungsvariablen, wenn Sie das Env-Feld der Cmd-Struktur verwenden. Um dies zu beheben, können Sie die gewünschte Umgebungsvariable an die vorhandene os.Environ()-Liste anhängen:
cmd := exec.Command("ansible-playbook", args...) cmd.Env = os.Environ() cmd.Env = append(cmd.Env, "MY_VAR=some_value")
Dieser Ansatz behält die vorhandenen Umgebungsvariablen bei und setzt gleichzeitig die spezifische Umgebungsvariable MY_VAR auf den gewünschten Wert. Durch die Kombination der nativen Funktion os.Environ() mit der Möglichkeit, zusätzliche Umgebungsvariablen anzuhängen, können Sie mithilfe von exec.Command.
Umgebungsvariablen effektiv an Ihre Befehlsausführung übergebenDas obige ist der detaillierte Inhalt vonWie übergebe ich Umgebungsvariablen an „exec.Command' in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!