問題:
「」を使用して環境変数を設定した後Go プログラム内の os" パッケージは、現在のターミナルではアクセスできないままですsession.
詳細:
os.Setenv("FOO", "BAR") を使用して環境変数を設定する Go プログラムでは、fmt.Println を使用してプログラム内で変数を出力できます。 (os.Getenv("FOO")) ですが、ターミナルで echo $FOO を使用してクエリすると、変数は存在しないままになります。 session.
答え:
新しいプロセスは、親プロセスの環境を継承します。子プロセス内の環境を変更しても、親プロセスの環境には影響しません。したがって、指定されたシナリオでは、Go プログラムで環境変数を設定しても、ターミナル セッションの環境は変更されません。
解決策:
環境変数を永続化するには、ターミナルセッションでは、環境を変更した後にシェルを起動する必要があります。このソリューションは、次のようなさまざまなアプローチを使用して実装できます。
これらのアプローチのいずれかを採用することで、Go プログラム内で設定された環境変数をターミナル セッションで確実に利用できるようになります。
以上がGo の `os` パッケージによって設定された環境変数がターミナル セッションに保持されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。