4
私は一般的なコマンドラインツール(有能なプレイブック)のgo wrapperを書いています。exec.Commandコールでパラメータを渡す必要があります。 bashの同等は次のようになります。これまで私はちょうどos.Setenvを使用してMY_VARを輸出したENV VARをexec.Commandに渡しますか?
MY_VAR=some_value ansible-playbook -i custom-inventory playbook.yml
、それは脚本の並列実行のための問題を引き起こします。ですから、コマンドの前にvarを渡して、各呼び出しにこのvarの値があるようにします。
私はexec.Commandでこれを行う方法は本当にわかりません。なぜなら、その関数の最初のパラメータは "command"ですからです。任意のヒント?
編集:Cmd構造体のEnvフィールドを使用してみましたが、すべての環境変数をオーバーライドしました。かなりの量の設定があり、この1つの環境変数をオーバーライドしたいだけです。これはできないのですか?解決のために疑問に思ったものについては
これは、現在のプロセスの環境に既にあるすべての 'MY_VAR 'を上書きすることに注意してください。これがあなたの意図ならば、このソリューションはうまく動作します。 –
そうでなければ、 'append()'行を 'if _、ok:= os.LookupEnv(" MY_VAR ")のようなものの中に入れたいと思うでしょう。 !ok {...} ' –