Подтвердить что ты не робот

Как установить переменные среды bash из script?

У меня есть некоторые настройки прокси, которые я только время от времени хочу включить, поэтому я не хочу помещать их в свой ~/.bash_profile. Я попытался поместить их непосредственно в ~/bin/set_proxy_env.sh, добавив ~/bin к моим PATH и chmod +x с помощью script, но, несмотря на то, что script работает, переменные не попадают в мою оболочку. Кто-нибудь знает, как заставить их придерживаться остальной части сеанса оболочки?

4b9b3361

Ответ 1

Используйте один из:

source <file>

. <file>

Ответ 2

В script используйте

export varname=value

а также выполните script с помощью:

source set_proxy_env.sh.

Ключевое слово export гарантирует, что переменная отмечена для автоматического включения в среду последующих команд. Использование source для выполнения script запускает его с текущей оболочкой вместо запуска временного для script.

Ответ 3

Вы пробовали это:

. ~/bin/set_proxy_env.sh

Запуск сам по себе открывает отдельную подоболочку (я думаю) и устанавливает там переменную. Но тогда привязка теряется после выхода обратно в вашу оболочку. Точка впереди говорит ему, чтобы она запускала ее в той же оболочке.

Кроме того, не забывайте export переменные, которые вам нужны: export MYVAR=value