Go プログラムで「os」パッケージを使用して環境変数を設定しようとすると、プロセス内で永続化されます。プログラムではありますが、ターミナルではありませんsession.
システム内に新しいプロセスが作成されると、その親プロセスの環境変数のコピーが継承されます。ただし、子プロセス内でこれらの変数に加えられた変更は、親プロセスには反映されません。
現在のプログラムの実行後も環境変数が持続するようにするには、プログラムで変更された環境変数を使用した新しいシェル (またはターミナル セッション)。これは、適切なコマンド ライン引数を指定して os.StartProcess 関数を使用することで実現できます。
次のコード スニペットは、「os」パッケージを使用して環境変数を設定し、起動する方法を示しています。変更された環境を持つ新しいシェル:
package main import ( "fmt" "os" "os/exec" ) func main() { // Set the environment variable _ = os.Setenv("FOO", "BAR") // Build the command to launch a new shell cmd := exec.Command("sh", "-c", "env") cmd.Env = os.Environ() // Launch the shell with the modified environment err := cmd.Run() if err != nil { fmt.Println("Failed to launch shell:", err) return } // Print the environment variable value within the new shell stdout, err := cmd.Output() if err != nil { fmt.Println("Failed to get shell output:", err) return } fmt.Println(string(stdout)) }
上記のプログラムを実行すると、更新された環境変数を使用して新しいシェル セッションが作成され、そのセッションが出力されます。値。
以上がGo で環境変数の変更をプロセス間で永続的にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。