インライン変数定義は機能しますが、前の行はawsコマンドに対して機能しないのはなぜですか? [コピー]

インライン変数定義は機能しますが、前の行はawsコマンドに対して機能しないのはなぜですか? [コピー]

このコマンドを実行するとき:

https_proxy=http://myproxy.com/ aws [aws-param]

エージェントはコマンドラインツールを介して取得されますaws

しかし - 私がするとき:

https_proxy=http://myproxy.com/ 
aws [aws-param]

このawsコマンドはプロキシを取得しません。

私にとっては、Unixの観点から見ると、それらは同じです。これはPythonが環境変数を読み取る方法に関連していますか?

私の質問は次のとおりですインライン変数定義は機能しますが、前の行はawsコマンドに対して機能しないのはなぜですか?

答え1

Unixの観点から(またはシェルの観点から)、これらは同じではありません。

https_proxy=http://myproxy.com/ aws [aws-param]

https_proxyコマンドの変数を明示的に定義しますaws。シェルはそれをawsプロセス環境にコピーしてaws調べます。

https_proxy=http://myproxy.com/ 
aws [aws-param]

変数はシェル環境で定義されていますが、変数はエクスポートされないため、シェルは変数をawsプロセス環境にコピーしません。

aws(の観点から)同等のものは実際に

https_proxy=http://myproxy.com/ 
export https_proxy
aws [aws-param]

バラよりBashの構文は何ですか:someVariable = someValueコマンド詳細(およびドキュメントリンク)をご覧ください。

関連情報