Ich habe den folgenden Befehl ausprobiert, um Proxy einzuschalten yaourt
:
export ALL_PROXY=http://proxy.example.com:8080
Die Frage ist, wie man den Proxy aufhebt yaourt
? Wie kann ich im Allgemeinen den Wert einer Variablen in der aktuellen Shell aufheben?
unset ALL_PROXY
$ ALL_PROXY=http://proxy.example.com:8080 yaourt
möchten, folgendermaßen ausführen: Dadurch wird die envvar nur für die festgelegt Befehlsausführung. Sie können so vieleFOO=bar BAZ=bat
Variablen eingeben, wie Sie möchten, bevor der Befehl ausgeführt wird.Antworten:
Führen Sie aus, um eine Umgebungsvariable zu entfernen
Beachten Sie, dass eine Umgebungsvariable nur in einem Programm und dem Programm, das sie startet, wirksam wird. Wenn Sie eine Umgebungsvariable in einem Shell-Fenster festlegen, hat dies keine Auswirkungen auf andere Shell-Fenster.
Wenn Sie
export ALL_PROXY=…
eine Initialisierungsdatei hinzugefügt haben , entfernen Sie sie von dort.Sie können
export
ohne Argumente ausführen, um festzustellen, welche Umgebungsvariablen in der aktuellen Shell festgelegt sind.Denken Sie daran, dass Sie eine Shell-Variable exportieren müssen, um sie für die von dieser Shell gestarteten Programme verfügbar zu machen, entweder indem Sie sie
export VAR
nach der Zuweisung ausführenVAR=VALUE
oder indem Sie die beiden (export VAR=VALUE
) kombinieren .quelle
Um eine gebundene Variable in bash zu entfernen, 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 so einstellen, dass er sich nach leertoder
Der Unterschied besteht darin, dass die beiden letzteren Befehle die Variable nicht löschen. Sie können den Unterschied erkennen, indem Sie das
-u
Flag mit verwenden, umset
zu erzwingen, dass die nicht gesetzten Variablen beim Ersetzen als Fehler behandelt werden:In dem obigen Beispiel, klagt bash über
var
ungebunden ist (nach unsetting seinem Wert) , die der erwartete Fehler ist (beachten Sie, dass diese nicht in der zweiten Echo - Befehl geschieht, was bedeutet , dassvar
einen Wert hat, istempty
odernull
).quelle
unset
im Skript verwenden. Gleiches gilt.