Problem:
Nach dem Festlegen einer Umgebungsvariablen mit dem „ os“-Paket in einem Go-Programm, bleibt es im aktuellen Terminal unzugänglich Sitzung.
Details:
Ein Go-Programm, das eine Umgebungsvariable mit os.Setenv("FOO", "BAR") festlegt, ermöglicht das Drucken der Variablen innerhalb des Programms mit fmt.Println (os.Getenv("FOO")), aber die Variable bleibt abwesend, wenn sie mit echo $FOO im Terminal abgefragt wird Sitzung.
Antwort:
Neue Prozesse erben die Umgebung ihres übergeordneten Prozesses. Änderungen an der Umgebung innerhalb eines untergeordneten Prozesses wirken sich nicht auf die Umgebung des übergeordneten Prozesses aus. Folglich ändert sich im gegebenen Szenario das Festlegen der Umgebungsvariablen im Go-Programm nicht an der Umgebung der Terminalsitzung.
Lösung:
So machen Sie die Umgebungsvariable dauerhaft im Bei einer Terminalsitzung müssen Sie nach der Änderung der Umgebung eine Shell starten. Diese Lösung kann mit verschiedenen Ansätzen implementiert werden, darunter:
Durch die Übernahme eines dieser Ansätze können Sie sicherstellen, dass die im Go-Programm festgelegte Umgebungsvariable in der Terminalsitzung verfügbar wird.
Das obige ist der detaillierte Inhalt vonWarum bleiben Umgebungsvariablen, die über das „OS'-Paket von Go festgelegt wurden, nicht in der Terminalsitzung bestehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!