Váš skript obsahuje správny riadok export https_proxy=.... Spustíte ho a nasledujúci príkaz stále vidí starý proxy. Skript možno perfektne fungoval vnútri vlastného procesu.

Spustenie skriptu štartuje samostatný shell. Môže odovzdať premenné príkazom, ktoré spustí, ale po skončení nemôže nahradiť prostredie nadradeného terminálového shellu.

./set-proxy.sh
. ./set-proxy.sh

To sú rôzne operácie. Druhá používa shellový builtin dot na čítanie súboru v aktuálnom shelli. Bash to nazýva aj source; pozrite si referenciu builtinov.

Načítavajte pomocou source iba súbor, ktorému dôverujete, pretože všetky jeho shellové príkazy bežia v tomto aktuálnom kontexte. Ak je proxy potrebný len pre príkazy vnútri skriptu, správnou hranicou je bežné spustenie. Pre jediný externý príkaz sa priradenie proxy obmedzené na príkaz vyhne zmene aktuálneho shellu.

Držte priradenia premenných doslovné. Backtick znamená substitúciu príkazu, nie citovanie. Riadok priraďujúci proxy by sa nemal omylom pokúsiť spustiť svoju URL. Pre hodnoty určené na výber verejného koncového bodu zoznam bezplatných proxy ponúka kandidátov, ktorých protokol musí zodpovedať klientovi. Nakoniec overte názvy premenných, ktoré číta skutočný sieťový klient; oprava rozsahu shellu neurobí nepodporovanú premennú účinnou.

Súvisiace články