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


80

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

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

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


7
試してくださいunset ALL_PROXY
coffeMug

@coffeMugが同様の回答の中にそれを作るかもしれないが、あなたはまた、ここからいくつかの情報を盗む検討することもでき:stackoverflow.com/a/12263914/1081936
terdon

あなたが頻繁に実行するコマンドがあるかどう受け入れ答えに加えて、それはあなたではなく設定したり、シェルセッションの残りのための変更ではないだろうと、環境変数を使用して、あなたはそれが好きで実行することができます$ ALL_PROXY=http://proxy.example.com:8080 yaourtのみENVVARを設定することコマンド実行。FOO=bar BAZ=batコマンドを実行する前に、必要な数の変数を配置できます。
なしnone

回答:


113

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

unset ALL_PROXY

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

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

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

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


19

bashでバインドされた変数の設定を解除するにはunset VARIABLEunset ALL_PROXYあなたの場合)を使用します。このコマンドは実際に変数を削除します。変数の値を空に設定することもできます

VARIABLE=

または

VARIABLE=""

違いは、後者の2つのコマンドが変数を削除しないことです。-uフラグwith setを使用して、置換中に未設定の変数を強制的にエラーとして扱うことにより、違いを確認できます。

/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のエコーコマンドでは起こらないことに注意varされた値があるemptynull)を。


シェルスクリプトファイルに変数があり、そのファイルを取得した場合、どうすれば設定を解除できますか?
Abhinav

@Abhinav unsetはスクリプトで使用します。同じことが当てはまります。
coffeMug
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.