Почему запуск set-proxy.sh не меняет ваш терминал
Запущенный скрипт не может экспортировать переменные обратно в родительскую оболочку. Загрузите доверенный файл конфигурации через source, если текущая оболочка должна сохранить настройки.
В вашем скрипте есть правильная строка export https_proxy=.... Вы запускаете его, а следующая команда всё ещё видит старый proxy. Возможно, внутри собственного процесса скрипт отработал безупречно.
Запуск скрипта открывает отдельную оболочку. Она может передавать переменные командам, которые запускает, но не может заменить окружение родительской терминальной оболочки после своего завершения.
./set-proxy.sh
. ./set-proxy.sh
Это разные операции. Вторая использует встроенную команду dot оболочки, чтобы прочитать файл в текущей оболочке. Bash также называет её source; см. справку по встроенным командам.
Делайте source только для файла, которому доверяете, потому что все его команды оболочки выполняются в этом текущем контексте. Если proxy нужен только для команд внутри скрипта, правильной границей будет обычный запуск. Для одной внешней команды назначение proxy, ограниченное командой, позволяет не менять текущую оболочку.
Держите присваивания переменных буквальными. Backtick означают подстановку команды, а не цитирование. Строка, назначающая proxy, не должна случайно пытаться выполнить свой URL. Для значений, предназначенных для выбора публичной конечной точки, список бесплатных proxy предлагает кандидатов, протокол которых должен соответствовать клиенту. Наконец, проверьте имена переменных, которые читает реальный сетевой клиент; исправление области действия оболочки не делает неподдерживаемую переменную действенной.