Zašto pokretanje set-proxy.sh ne mijenja vaš terminal
Pokrenuta skripta ne može izvesti varijable natrag u matični shell. Učitajte pouzdanu konfiguracijsku datoteku pomoću source kada trenutni shell mora zadržati postavke.
Vaša skripta sadrži ispravan red export https_proxy=.... Pokrenete je, a sljedeća naredba i dalje vidi stari proxy. Skripta je možda savršeno radila unutar vlastitog procesa.
Pokretanje skripte započinje zasebni shell. On može prenijeti varijable naredbama koje pokrene, ali ne može zamijeniti okruženje nadređenog terminalnog shella nakon izlaska.
./set-proxy.sh
. ./set-proxy.sh
To su različite operacije. Druga koristi shellovu ugrađenu naredbu dot da pročita datoteku u trenutnom shellu. Bash to također naziva source; pogledajte referencu za ugrađene naredbe.
Radite source samo datoteke kojoj vjerujete, jer se sve njezine shell naredbe izvršavaju u tom trenutnom kontekstu. Ako je proxy potreban samo za naredbe unutar skripte, obično izvršavanje je ispravna granica. Za jednu vanjsku naredbu dodjela proxyja ograničena na naredbu izbjegava promjenu trenutnog shella.
Držite dodjele varijabli doslovnima. Backtickovi znače zamjenu naredbe, a ne citiranje. Red koji dodjeljuje proxy ne smije slučajno pokušati izvršiti svoj URL. Za vrijednosti namijenjene odabiru javne krajnje točke, popis besplatnih proxyja nudi kandidate čiji protokol mora odgovarati klijentu. Na kraju provjerite nazive varijabli koje čita stvarni mrežni klijent; popravljanje opsega shella ne čini nepodržanu varijablu djelotvornom.