Fjern proxyvariabler i Bash og Zsh med en unproxy-funksjon
Reparer en shell-hjelper som bare fjerner all_proxy etter at protokollspesifikke variabler og ALL_PROXY med store bokstaver er aktivert.
Denne shell-hjelperen mangler en fullstendig avslåing:
export http_proxy=http://127.0.0.1:1087
export https_proxy=http://127.0.0.1:1087
export ALL_PROXY=socks5://127.0.0.1:1080
alias unproxy='unset all_proxy'
I et Unix-skal er all_proxy og ALL_PROXY to forskjellige navn. Aliaset fjerner ikke noen av de tre variablene over. Fjerner man bare ALL_PROXY i store bokstaver, vil de to protokollspesifikke innstillingene fortsatt ligge der.
For å fjerne disse vanlige navnene fra den aktive Bash- eller Zsh-økten:
unproxy() {
unset http_proxy https_proxy all_proxy
unset HTTP_PROXY HTTPS_PROXY ALL_PROXY
}
Kall funksjonen i det skallet der de neste kommandoene skal overta det rensede miljøet. Et barneskript kan ikke rense miljøet i foreldreterminalen.
Applikasjoner som allerede kjører, beholder sin egen tilstand. En curl-konfigurasjonsfil, en Git-innstilling, en nettleserinnstilling eller et uttrykkelig kommandovalg kan også velge en proxy etter at variablene er fjernet. Hvis trafikken fortsatt bruker den, må du sjekke konfigurasjonen til den klienten.