Ваш скрыпт змяшчае правільны радок export https_proxy=.... Вы яго запускаеце, а наступная каманда ўсё яшчэ бачыць стары proxy. Магчыма, скрыпт ідэальна адпрацаваў унутры свайго працэсу.

Запуск скрыпта пачынае асобную абалонку. Яна можа перадаваць зменныя камандам, якія запускае, але не можа замяніць асяроддзе бацькоўскай абалонкі тэрмінала пасля свайго выхаду.

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

Гэта розныя аперацыі. Другая выкарыстоўвае ўбудаваную каманду dot абалонкі, каб прачытаць файл у бягучай абалонцы. Bash таксама называе гэта source; гл. даведку па ўбудаваных камандах.

Рабіце source толькі для файла, якому давяраеце, бо ўсе яго каманды абалонкі выконваюцца ў гэтым бягучым кантэксце. Калі proxy патрэбны толькі для камандаў унутры скрыпта, правільнай мяжой будзе звычайнае выкананне. Для адной знешняй каманды прызначэнне proxy, абмежаванае камандай пазбягае змены бягучай абалонкі.

Трымайце прызначэнні зменных літаральнымі. Backtick азначаюць падстаноўку каманды, а не цытаванне. Радок, які прызначае proxy, не павінен выпадкова спрабаваць выканаць свой URL. Для значэнняў, прызначаных для выбару публічнага канцавога пункта, спіс бясплатных proxy прапануе кандыдатаў, пратакол якіх павінен адпавядаць кліенту. Нарэшце, праверце імёны зменных, якія чытае фактычны сеткавы кліент; выпраўленне абсягу абалонкі не робіць непадтрыманую зменную дзейснай.

Падобныя артыкулы