web-dev-qa-db-ja.com

コマンドラインで変数を設定解除するにはどうすればよいですか?

次のコマンドを試して、yaourtにプロキシを設定しました。

export ALL_PROXY=http://proxy.example.com:8080

問題は、yaourtでプロキシを設定解除する方法です。一般に、現在のシェルで変数の値を設定解除するにはどうすればよいですか?

94
Hamed Kamrava

環境変数を削除するには、次を実行します

unset ALL_PROXY

環境変数は、プログラムとそれが起動するプログラムでのみ有効になることに注意してください。 1つのシェルウィンドウで環境変数を設定しても、他のシェルウィンドウには影響しません。

初期化ファイルにexport ALL_PROXY=…を追加した場合は、そこから削除します。

引数なしでexportを実行すると、現在のシェルで設定されている環境変数を確認できます。

Shell変数をそのShellによって開始されたプログラムで使用できるようにするには、割り当てexport VARの後にVAR=VALUEを実行するか、2つを組み合わせて(export VAR=VALUE)、変数をエクスポートする必要があることに注意してください。 。

Bashでバインドされた変数の設定を解除するには、unset VARIABLE(あなたの場合は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には値がありますemptyまたはnull)です。

21
coffeMug