У меня проблема. Я установил переменную окружения в /etc/environment
, используя BOOST_LIBRARYDIR="/usr/local/lib/boost/release"
.
echo $BOOST_LIBRARYDIR
правильно отображает значение в терминале. Однако, если я выполню echo $BOOST_LIBRARYDIR
в скрипте, используя ./test.sh
, он покажет переменную env как пустую. Насколько я понимаю, это должно быть установлено и для дочерних процессов?
Поскольку /etc/environment
, кажется, получен из /etc/init/gdm.conf
, я думаю, вы можете заменить свою строку на
export BOOST_LIBRARYDIR="/usr/local/lib/boost/release"
Если вы хотите, чтобы переменная окружения передавалась потомкам, вы должны экспортировать ее. Чтобы проверить, экспортирован ли он, используйте команду env
. Самый безопасный способ сделать это заключается в следующем.
BOOST_LIBRARYDIR="/usr/local/lib/boost/release"; export BOOST_LIBRARYDIR
Более новые оболочки, такие как bash
и ksh
, принимают более простую форму.
export BOOST_LIBRARYDIR ="/usr/local/lib/boost/release"