Скрипт экспортирует 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-приложения и другие терминалы по-прежнему сохраняют свои окружения. Если помощник предназначен для запуска только одной команды через прокси, держать изменение в окружении этой команды часто и есть правильный охват.

Похожие статьи