proxy-on.sh uitvoeren herconfigureert de oudershell niet
Kies een shellfunctie of een gesourced bestand wanneer een proxy-hulp de omgeving van de huidige shell moet wijzigen.
Het script exporteert http_proxy, drukt “enabled” af en stopt. Een Curl die daarna vanuit de oorspronkelijke terminal start, heeft nog steeds zijn oude omgeving.
Het uitvoeren van het script maakte een childproces aan. Export stelt een waarde beschikbaar aan de kinderen van dat proces; het stuurt de waarde niet terug naar de oudershell. De export in bash -c of tussen backticks zetten keert die verhouding niet om.
Voor een interactieve schakelaar kan een functie die in de huidige shell is gedefinieerd het bedoelde werk doen:
proxy_on() {
export http_proxy=http://proxy.example.net:8080
export https_proxy="$http_proxy"
}
Vervang het voorbeeld-endpoint door uw HTTP-dienst, of door een kandidaat uit de HTTP-proxylijst voor toegestane openbare verzoeken. Roep de functie aan nadat de definitie is geladen. Een gesourced shellbestand is een andere manier om toewijzingen in de huidige shell uit te voeren in plaats van in een nieuwe.
Bestaande GUI-toepassingen en andere terminals houden nog steeds hun eigen omgevingen. Als de hulp alleen bedoeld is om één via proxy lopende opdracht te starten, is de wijziging in de omgeving van die opdracht houden vaak precies het juiste bereik.