Ich habe den folgenden Befehl versucht, um Proxy auf yaourt
zu setzen:
export ALL_PROXY=http://proxy.example.com:8080
Die Frage ist, wie der Proxy auf yaourt
deaktiviert werden kann. Wie kann ich im Allgemeinen den Wert einer Variablen in der aktuellen Shell deaktivieren?
Kommentare
- Versuchen Sie
unset ALL_PROXY
- @coffeMug könnte dies genauso gut zu einer Antwort machen. Sie könnten auch in Betracht ziehen, einige Informationen von hier zu stehlen: stackoverflow.com/a/12263914 / 1081936
- Zusätzlich zur akzeptierten Antwort führen Sie häufig den Befehl ' aus, der eine Umgebungsvariable verwendet, die Sie ' Wenn Sie den Rest Ihrer Shell-Sitzung nicht festlegen oder ändern möchten, können Sie ihn wie folgt ausführen:
$ ALL_PROXY=http://proxy.example.com:8080 yaourt
, mit dem die envvar nur für den Befehlslauf festgelegt wird . Sie können so vieleFOO=bar BAZ=bat
-Variablen eingeben, wie Sie möchten, bevor der Befehl ausgeführt wird.
Antwort
Um eine Umgebungsvariable zu entfernen, führen Sie
unset ALL_PROXY
aus. Beachten Sie, dass eine Umgebungsvariable nur in einem Programm und dem Programm wirksam wird startet. Wenn Sie eine Umgebungsvariable in einem Shell-Fenster festlegen, hat dies keine Auswirkungen auf andere Shell-Fenster.
Wenn Sie einer Initialisierungsdatei export ALL_PROXY=…
hinzugefügt haben, entfernen Sie diese von dort aus.
Sie können export
ohne Argumente ausführen, um zu sehen, welche Umgebungsvariablen in der aktuellen Shell festgelegt sind.
Denken Sie daran Um eine Shell-Variable für die von dieser Shell gestarteten Programme verfügbar zu machen, müssen Sie sie exportieren, indem Sie entweder export VAR
nach der Zuweisung VAR=VALUE
ausführen oder durch Kombinieren der beiden (export VAR=VALUE
).
Kommentare
- Ich denke, es ist ' ist nicht unbedingt erforderlich, dass die
export VAR
nach der Zuweisung auftritt. Beachten Sie:sh -c 'export F; F=2; sh -c "echo F2=\$F"; echo F1=$F'
druckt " F2 = 2 \ nF1 = 2 ". -
unset
ist auch erforderlich, um assoziative Bash-Arrays zu löschen (dh: bash " Hash-Tabellen " oder " diktiert "), wie in diesem Tutorial unter dem Abschnitt " Löschen von ": künstliche Welten.net/blog/2012/10/17/… .
Antwort
Um eine gebundene Variable in bash zu deaktivieren, verwenden Sie unset VARIABLE
(unset ALL_PROXY
in Ihrem Fall). Dieser Befehl löscht die Variable tatsächlich. Sie können den Wert einer Variablen auch mit
VARIABLE=
oder
VARIABLE=""
-u
mit set
verwenden Um zu erzwingen, dass die nicht gesetzten Variablen beim Ersetzen als Fehler behandelt werden:
/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
Im obigen Beispiel beschwert sich bash über var
ist ungebunden (nachdem der Wert deaktiviert wurde). Dies ist der erwartete Fehler (beachten Sie, dass dies im zweiten Echo-Befehl nicht auftritt, was bedeutet, dass var
einen Wert hat, der empty
oder null
).
Kommentare
- Was wäre, wenn ich Ich habe eine Variable in meiner Shell-Skriptdatei und ich beschaffe diese Datei. Wie kann ich sie dann deaktivieren?
- @Abhinav Verwenden Sie
unset
im Skript gilt.