Zakaj zagon set-proxy.sh ne spremeni vašega terminala
Zagnana skripta ne more izvoziti spremenljivk nazaj v svojo nadrejeno lupino. Ko mora trenutna lupina ohraniti nastavitve, naložite zaupanja vredno konfiguracijsko datoteko s source.
Vaša skripta vsebuje pravilno vrstico export https_proxy=.... Zaženete jo, in naslednji ukaz še vedno vidi stari proxy. Skripta je morda brezhibno delovala znotraj svojega procesa.
Zagon skripte začne ločeno lupino. Ukazom, ki jih zažene, lahko posreduje spremenljivke, vendar po izhodu ne more zamenjati okolja nadrejene terminalske lupine.
./set-proxy.sh
. ./set-proxy.sh
To sta različni operaciji. Druga uporabi vgrajeni ukaz dot lupine, da prebere datoteko v trenutni lupini. Bash to imenuje tudi source; glejte referenco vgrajenih ukazov.
Delajte source samo za datoteko, ki ji zaupate, ker se vsi njeni ukazi lupine izvajajo v tem trenutnem okolju. Če je proxy potreben samo za ukaze znotraj skripte, je pravilna meja običajni zagon. Za en sam zunanji ukaz se dodelitev proxyja, omejena na ukaz, izogne spreminjanju trenutne lupine.
Ohranite dodelitve spremenljivk dobesedne. Backtick pomeni zamenjavo ukaza, ne citiranje. Vrstica, ki dodeli proxy, ne bi smela po nesreči poskusiti izvesti svojega URL-ja. Za vrednosti, namenjene izbiri javne končne točke, seznam brezplačnih proxyjev ponuja kandidate, katerih protokol se mora ujemati s klientom. Na koncu preverite imena spremenljivk, ki jih bere dejanski omrežni klient; popravljanje obsega lupine ne naredi nepodprte spremenljivke učinkovite.