Скриптът експортира http_proxy, отпечатва “enabled” и излиза. Curl, стартиран след това от оригиналния терминал, все още има старата си среда.

Изпълнението на скрипта създаде дъщерен процес. Export прави стойността достъпна за децата на този процес; той не изпраща стойността обратно в родителската обвивка. Поставянето на export вътре в bash -c или в бектици не обръща тази връзка.

За интерактивен превключвател функция, дефинирана в текущата обвивка, може да свърши желаната работа:

proxy_on() {
    export http_proxy=http://proxy.example.net:8080
    export https_proxy="$http_proxy"
}

Заменете примерния endpoint с вашата HTTP услуга или с кандидат от списъка с HTTP проксита за разрешени публични заявки. Извикайте функцията след зареждане на дефиницията ѝ. Зареден файл на обвивката е друг начин да изпълнявате присвоявания в текущата обвивка, а не в нова.

Съществуващите GUI приложения и други терминали все още пазят собствените си среди. Ако помощникът е предназначен да стартира само една команда през прокси, задържането на промяната в средата на тази команда често е точно правилният обхват.

Подобни статии