0

シェルスクリプトで以下の宣言を行いたい: proxy_set

declare -x https_proxy="https://192.168.220.4:8080/"

そして、以下のように実行します。

$ ./proxy_set

しかし、「エクスポート」は何も起こらなかったことを示しています。

別の方法で、次のように実行すると:

$ source proxy_set

次に、「エクスポート」はそれが機能することを示しています!

私の質問は、「ソース」コマンドを追加せずに機能させるにはどうすればよいですか? ありがとう!

4

2 に答える 2

3

できません。環境で変数を設定すると、そのシェルの環境とそれが生成する将来の子にのみ影響します。親シェルに影響を与える方法はありません。source(または)なしで実行すると、.新しいシェルが起動され、変数がそのシェルの環境に設定され、そのシェルが終了し、その環境が取り込まれます。

sourceコマンドを読み取り、入力したかのように現在のシェル内で実行します。

したがって、スクリプトで環境変数を設定する場合は、sourceそれを行う必要があります。または、シェル コマンドを実行する代わりに、シェル コマンドを出力として生成するコマンドを作成し、親がコマンドの出力を評価できるようにすることもできます。のようなものssh-agentはこのアプローチを使用します。

于 2012-07-07T15:45:49.143 に答える
0

追加してみてください:

export https_proxy="https://192.168.220.4:8080/"

次に、スクリプトを通常どおり実行します。

于 2012-07-07T15:48:17.743 に答える