Чому запуск set-proxy.sh не змінює ваш термінал
Запущений скрипт не може експортувати змінні назад у батьківську оболонку. Завантажте довірений файл конфігурації через source, якщо поточна оболонка має зберегти налаштування.
Ваш скрипт містить правильний рядок export https_proxy=.... Ви запускаєте його, а наступна команда все ще бачить старий proxy. Можливо, скрипт бездоганно працював усередині власного процесу.
Запуск скрипта відкриває окрему оболонку. Вона може передавати змінні командам, які запускає, але не може замінити середовище батьківської термінальної оболонки після свого завершення.
./set-proxy.sh
. ./set-proxy.sh
Це різні операції. Друга використовує вбудовану команду dot оболонки, щоб прочитати файл у поточній оболонці. Bash також називає її source; див. довідку з вбудованих команд.
Робіть source лише для файлу, якому довіряєте, бо всі його команди оболонки виконуються в цьому поточному контексті. Якщо proxy потрібен лише для команд усередині скрипта, правильною межею є звичайний запуск. Для однієї зовнішньої команди призначення proxy, обмежене командою уникає зміни поточної оболонки.
Тримайте призначення змінних буквальними. Backtick означають підстановку команди, а не цитування. Рядок, що призначає proxy, не повинен випадково намагатися виконати свій URL. Для значень, призначених для вибору публічної кінцевої точки, список безкоштовних proxy пропонує кандидатів, протокол яких має відповідати клієнту. Наостанок перевірте імена змінних, які читає фактичний мережевий клієнт; виправлення області дії оболонки не робить непідтримувану змінну дієвою.