次のコマンドを使用して、yaourt
にプロキシを設定しました。
export ALL_PROXY=http://proxy.example.com:8080
問題は、yaourt
のプロキシの設定を解除する方法です。一般に、現在のシェルで変数の値を設定解除するにはどうすればよいですか?
コメント
回答
環境変数を削除するには、次を実行します
unset ALL_PROXY
環境変数は、プログラムとそのプログラムでのみ有効になることに注意してください。を起動します。 1つのシェルウィンドウで環境変数を設定しても、他のシェルウィンドウには影響しません。
初期化ファイルにexport ALL_PROXY=…
を追加した場合は、削除します。
export
を引数なしで実行して、現在のシェルに設定されている環境変数を確認できます。
覚えておいてください。そのシェルによって開始されたプログラムでシェル変数を使用できるようにするには、割り当てVAR=VALUE
の後にexport VAR
を実行してシェル変数をエクスポートする必要があります。または、2つを組み合わせて(export VAR=VALUE
)。
コメント
- そうだと思います'は、割り当て後に
export VAR
が発生する必要はありません。観察:sh -c 'export F; F=2; sh -c "echo F2=\$F"; echo F1=$F'
は" F2 = 2 \ nF1 = 2 "を出力します。 -
unset
は、関連付けられたbash配列をクリアするためにも必要です(例:bash "ハッシュテーブル"、または" dicts ")、このチュートリアルでは"クリア": Artificialworlds.net/blog/2012/10/17/ … 。
回答
bashでバインドされた変数の設定を解除するには、
(あなたの場合はunset ALL_PROXY
)。このコマンドは実際に変数を削除します。変数の値を空に設定することもできます
VARIABLE=
または
VARIABLE=""
違いは、後者の2つのコマンドは変数を削除しないことです。set
で-u
フラグを使用すると違いを確認できます。置換中に未設定の変数をエラーとして処理するように強制するには:
/home/user1> var="" /home/user1> echo $var /home/user1> set -u /home/user1> echo $var /home/user1> unset var /home/user1> echo $var -bash: var: unbound variable
上記の例では、bashはvar
は(値の設定を解除した後)バインドされていないため、予想されるエラーです(これは、2番目のechoコマンドでは発生しないことに注意してください。つまり、var
の値は
unset ALL_PROXY
$ ALL_PROXY=http://proxy.example.com:8080 yaourt
コマンド実行に対してのみ環境変数を設定します。コマンドを実行する前に、必要な数のFOO=bar BAZ=bat
変数を配置できます。