ホームページ  >  記事  >  バックエンド開発  >  Go で環境変数を「exec.Command」に渡すにはどうすればよいですか?

Go で環境変数を「exec.Command」に渡すにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-18 07:15:02660ブラウズ

How to Pass Environment Variables to `exec.Command` in Go?

環境変数を exec.Command に渡す

exec.Command を使用してコマンド ライン ツールのラッパー スクリプトを作成するときに、次のような状況が発生する可能性があります。ここでは、コマンド実行の一部として環境変数を渡す必要があります。このコンテキストでは、ansible-playbook を使用しており、パラメーター MY_VAR の使用が必要です。

exec.Command 関数は、最初のパラメーターとして文字列の配列を受け入れます。最初の要素は、次のコマンドを表します。実行する。環境変数を渡すには、Cmd 構造体の環境変数のスライスを変更できます。

あなたの場合、Cmd 構造体の Env フィールドを使用するときにすべての環境変数をオーバーライドするという問題に直面しています。これに対処するには、目的の環境変数を既存の os.Environ() リストに追加します。

cmd := exec.Command("ansible-playbook", args...)
cmd.Env = os.Environ()
cmd.Env = append(cmd.Env, "MY_VAR=some_value")

この方法では、特定の MY_VAR 環境変数を目的の値に設定しながら、既存の環境変数を保持します。ネイティブ os.Environ() 関数と追加の環境変数を追加する機能を組み合わせることで、exec.Command.

を使用してコマンド実行に環境変数を効果的に渡すことができます。

以上がGo で環境変数を「exec.Command」に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。