Bruk en annen proxy for én shellkommando
Sett proxy-variabler foran en kommando når du vil ha en midlertidig rute uten å endre foreldre-shellet eller redigere oppstartsfiler.
Du vil at én nedlasting skal bruke en annen proxy, og deretter skal alt gå tilbake til det normale. Du trenger ikke redigere oppstartsfilen til shellet og håpe at du husker å angre det.
For en ekstern kommando i et POSIX-lignende shell setter du tilordningen før kommandoen:
https_proxy=http://proxy.example:8080 curl https://example.com/
Bruk HTTP-endepunktet som er ment for den nedlastingen; HTTP-proxy-listen tilbyr kandidater for tillatte offentlige ruter. Tilordningen gis til den kommandoens miljø. Barneprosessene kan arve verdien, men tilordningen erstatter ikke foreldre-shellets eksisterende verdi etter at kommandoen avsluttes.
Klienten bestemmer fortsatt hva som skal leses
Shell-syntaks lager et miljø; den tvinger ikke fram en nettverksrute. Bruk variabelnavnene som programmet støtter. Eksisterende omgåelsesvariabler, eksplisitte kommandovalg eller programmets egen konfigurasjon kan fortsatt påvirke resultatet.
Bash-miljødokumentasjonen forklarer oppførselen til kommandoprefikset. Kommandoer som er shell-funksjoner, spesielle innebygde kommandoer eller shell-syntaks kan ha ekstra regler for omfang, derfor bruker det enkle eksempelet over bevisst et eksternt program.
For flere kommandoer, bruk et subshell
(
export http_proxy=http://proxy.example:8080
export https_proxy=http://proxy.example:8080
command-one
command-two
)
Gruppen i parentes kjører med sitt eget shell-miljø. Erstatt de illustrative kommandonavnene med programmene du vil kjøre. Dette mønsteret unngår den skjøre sekvensen med å lagre en gammel verdi, overskrive den og gjenopprette den manuelt etter hver mulig feil.
Hold hemmeligheter unna eksempler som kopieres til shell-historikken. Husk også at sudo kan filtrere miljøet; en variabel som er synlig for den ytre kommandoen, sendes ikke automatisk gjennom hver privilegiegrense. Midlertidig omfang og det faktiske proxyvalget er fortsatt separate spørsmål.