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

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

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

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

コメント

  • unset ALL_PROXY
  • @coffeMugはそれを答えにするかもしれません、あなたはここからいくつかの情報を盗むことを検討することもできます: stackoverflow.com/a/12263914 / 1081936
  • 受け入れられた回答に加えて、'頻繁に実行する、環境変数を使用するコマンドがある場合'シェルセッションの残りの部分を設定または変更するのではなく、次のように実行できます:$ ALL_PROXY=http://proxy.example.com:8080 yaourtコマンド実行に対してのみ環境変数を設定します。コマンドを実行する前に、必要な数のFOO=bar BAZ=bat変数を配置できます。

回答

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

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の値は

またはnull)。

コメント

  • もし私がシェルスクリプトファイルに変数があり、そのファイルを入手したら、どのように設定を解除しますか?
  • @Abhinavスクリプトでunsetを使用します。同じです。適用されます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です