Per què executar set-proxy.sh no canvia el teu terminal
Un script executat no pot exportar variables al shell pare. Carrega amb source un fitxer de configuració de confiança quan el shell actual hagi de conservar la configuració.
El teu script conté la línia export https_proxy=... correcta. L'executes i la comanda següent encara veu el proxy antic. Potser l'script va funcionar perfectament dins del seu propi procés.
Executar un script inicia un shell separat. Pot passar variables a les comandes que inicia, però no pot substituir l'entorn del shell pare del terminal després de sortir.
./set-proxy.sh
. ./set-proxy.sh
Són operacions diferents. La segona fa servir el builtin dot del shell per llegir el fitxer al shell actual. Bash també en diu source; consulta'n la referència de builtins.
Fes source només d'un fitxer en què confiïs, perquè totes les seves comandes de shell s'executen en aquest context actual. Si el proxy només cal per a comandes dins de l'script, l'execució ordinària és el límit correcte. Per a una sola comanda externa, una assignació de proxy limitada a la comanda evita canviar el shell actual.
Mantén les assignacions de variables literals. Els accents greus volen dir substitució de comandes, no citació. Una línia que assigna un proxy no hauria d'intentar executar la seva URL per accident. Per als valors destinats a triar un punt final públic, la llista de proxy gratuïts ofereix candidats el protocol dels quals ha de coincidir amb el client. Finalment, verifica els noms de les variables que llegeix el client de xarxa real; arreglar l'abast del shell no fa efectiva una variable no suportada.