Скрипт експортує 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-програми та інші термінали й далі зберігають власні середовища. Якщо помічник призначений для запуску лише однієї команди через проксі, тримати зміну в середовищі цієї команди часто і є правильним обсягом.

Схожі статті