Экспорт переменных среды с использованием скрипта - PullRequest
0 голосов
/ 18 февраля 2012

Мне нужно установить некоторые переменные окружения в Ubuntu.Я делаю следующее, и это работает:

export PATH="/home/vagrant/ns-allinone-2.35/bin:/home/vagrant/ns-allinone-2.35/tcl8.5.10/unix:/home/vagrant/ns-allinone-2.35/tk8.5.10/unix:$PATH"
export LD_LIBRARY_PATH="/home/vagrant/ns-allinone-2.35/otcl-1.14:/home/vagrant/ns-allinone-2.35/lib"
export TCL_LIBRARY="/home/vagrant/ns-allinone-2.35/tcl8.5.10/library"

Но я перемещаю то же самое в скрипте envexport.sh и выполняю его, переменные среды не устанавливаются.пошло не так?Как это сделать?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 18 февраля 2012

Если вы просто запустите сценарий, переменные среды будут уничтожены после его завершения.

Используйте . envexport.sh. Таким образом, команды выполняются в текущей оболочке (среде).

2 голосов
/ 18 февраля 2012

Когда вы запускаете команду в оболочке, оболочка создает подпроцесс (дочерний процесс). Все переменные среды, которые были определены или изменены в подпроцессе, будут потеряны для родительского процесса.

Однако, если вы source скрипт, вы заставляете скрипт запускаться в текущем процессе. Это означает, что переменные окружения в скрипте, который вы запустили, не будут потеряны.

0 голосов
/ 18 февраля 2012

Одна вещь, которая может помочь, если вы хотите, чтобы эти переменные устанавливались для всех ваших сессий, вы можете поместить те же команды в ваш файл .bashrc, выполнив следующую команду и вставив строки в файл.

vim ~ / .bashrc

и пробег

источник ~ / .bashrc

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...