Váš skript obsahuje správný řádek export https_proxy=.... Spustíte ho a další příkaz stále vidí starý proxy. Skript možná perfektně fungoval uvnitř vlastního procesu.

Spuštění skriptu startuje samostatný shell. Může předat proměnné příkazům, které spustí, ale po ukončení nemůže nahradit prostředí nadřazeného terminálového shellu.

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

Jsou to různé operace. Druhá používá shellový builtin dot ke čtení souboru v aktuálním shellu. Bash tomu také říká source; viz referenci builtinů.

Načítejte pomocí source jen soubor, kterému důvěřujete, protože všechny jeho shellové příkazy běží v tomto aktuálním kontextu. Pokud je proxy potřeba jen pro příkazy uvnitř skriptu, správnou hranicí je běžné spuštění. Pro jediný externí příkaz se přiřazení proxy omezené na příkaz vyhne změně aktuálního shellu.

Držte přiřazení proměnných doslovná. Zpětná uvozovka znamená substituci příkazu, ne citaci. Řádek přiřazující proxy by se neměl omylem pokusit spustit svou URL. Pro hodnoty určené k výběru veřejného koncového bodu seznam bezplatných proxy nabízí kandidáty, jejichž protokol musí odpovídat klientovi. Nakonec ověřte názvy proměnných, které čte skutečný síťový klient; oprava rozsahu shellu neudělá nepodporovanou proměnnou účinnou.

Související články