/etc/profileにいくつかの環境変数を設定しましたが、bashからアクセスできますが、なんらかの理由でGoから取得できません。GoLangの/ etc/profileから環境変数を取得できません
は/ etc/profile:
...
TEST_ENV=test_me
私はbashのからアクセスすることができます
echo $TEST_ENV
test_me
を私がリストアップした場合、私はGO
os.Getenv("TEST_ENV") // returns ""
からこの変数にアクセスすることはできません使用可能な環境変数は
です私は私が探している変数が表示されていないが、そこに役立つかもしれないいくつかの変数:
SHELL=/bin/sh
USER=root
LOGNAME=root
私は私の問題は、異なるセッションやシェルに関連していると思うので、私も実行してみました
exec.Command("source /etc/profile")
と変数を取得しますが、それでも何も返しません。
環境変数が/ etc/profileに設定されている場合、環境変数を取得する方法を教えていただけますか?私はそのファイルからそれらを得ることを好むでしょうが、必要であれば、変数を別の場所に配置することもできます。
環境変数は、 "[...]ファイルから" [...]を取得しません。決して。これらは環境変数です。環境に変数が含まれている場合は、その変数にアクセスできます。 Go実行可能ファイルがTEST_ENVが設定されている環境で実行されていることを確認する必要があります。あなたのローカルbashにTEST_ENVが設定されていて、そのbashからあなたのGoバイナリを実行すると、バイナリに環境*が伝播され、*あなたはそれにアクセスします*。バイナリをどのように実行するかを示します。この問題は、Goとは全く関係がないことに注意してください。適切な環境を持たないバイナリを呼び出すだけです。 – Volker