Chcete, aby jedno sťahovanie použilo inú proxy, a potom sa všetko vrátilo do normálu. Netreba upravovať štartovací súbor shellu a dúfať, že si spomeniete zmenu vrátiť.

Pre externý príkaz v shelli typu POSIX dajte priradenie pred príkaz:

https_proxy=http://proxy.example:8080 curl https://example.com/

Použite koncový bod HTTP určený pre toto sťahovanie; zoznam HTTP proxy ponúka kandidátov pre povolené verejné cesty. Priradenie sa odovzdáva prostrediu daného príkazu. Jeho podriadené procesy môžu hodnotu zdediť, ale po skončení príkazu priradenie nenahrádza existujúcu hodnotu nadradeného shellu.

Klient stále rozhoduje, čo bude čítať

Syntax shellu vytvára prostredie; nevynucuje sieťovú cestu. Použite názvy premenných, ktoré aplikácia podporuje. Existujúce premenné obchádzania, explicitné voľby príkazu alebo vlastná konfigurácia aplikácie môžu výsledok stále ovplyvniť.

Dokumentácia k prostrediu Bash vysvetľuje správanie predpony príkazu. Príkazy, ktoré sú funkciami shellu, špeciálnymi vstavanými príkazmi alebo syntaxou shellu, môžu mať ďalšie pravidlá rozsahu, preto vyššie uvedený jednoduchý príklad zámerne používa externý program.

Pre niekoľko príkazov použite podshell

(
  export http_proxy=http://proxy.example:8080
  export https_proxy=http://proxy.example:8080
  command-one
  command-two
)

Skupina v zátvorkách beží vo vlastnom prostredí shellu. Nahraďte ilustratívne názvy príkazov programami, ktoré chcete spustiť. Tento vzor sa vyhýba krehkej postupnosti ukladania starej hodnoty, jej prepisovania a ručného obnovovania po každom možnom zlyhaní.

Udržujte tajomstvá mimo príkladov kopírovaných do histórie shellu. Pamätajte tiež, že sudo môže filtrovať prostredie; premenná viditeľná pre vonkajší príkaz sa automaticky neprenáša cez každú hranicu oprávnení. Dočasný rozsah a skutočný výber proxy zostávajú oddelenými otázkami.

Súvisiace články