proxy-on.sh auszuführen konfiguriert die Eltern-Shell nicht neu
Wählen Sie eine Shell-Funktion oder eine eingebundene Datei, wenn ein Proxy-Helfer die Umgebung der aktuellen Shell ändern soll.
Das Skript exportiert http_proxy, gibt „enabled“ aus und beendet sich. Ein danach aus dem ursprünglichen Terminal gestartetes Curl hat weiterhin seine alte Umgebung.
Das Ausführen des Skripts erzeugte einen Kindprozess. Export stellt einen Wert den Kindern dieses Prozesses zur Verfügung; er schickt den Wert nicht in die Eltern-Shell zurück. Den Export in bash -c oder in Backticks zu setzen, kehrt dieses Verhältnis nicht um.
Für einen interaktiven Umschalter kann eine in der aktuellen Shell definierte Funktion die beabsichtigte Aufgabe erledigen:
proxy_on() {
export http_proxy=http://proxy.example.net:8080
export https_proxy="$http_proxy"
}
Ersetzen Sie den Beispiel-Endpunkt durch Ihren HTTP-Dienst oder einen Kandidaten aus der HTTP-Proxy-Liste für erlaubte öffentliche Anfragen. Rufen Sie die Funktion auf, nachdem ihre Definition geladen ist. Eine eingebundene Shell-Datei ist eine weitere Möglichkeit, Zuweisungen in der aktuellen statt in einer neuen Shell auszuführen.
Bestehende GUI-Anwendungen und andere Terminals behalten weiterhin ihre eigenen Umgebungen. Wenn der Helfer nur einen einzelnen proxied Befehl starten soll, ist es oft genau der richtige Umfang, die Änderung in der Umgebung dieses Befehls zu belassen.