У мене є сценарій оболонки, щоб встановити деякі змінні середовища та запустити будь-яку програму, яку я надсилаю як аргумент:
export PATH=$HOME/local/bin:$PATH
export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH
export TESTER="MY TEST VAR"
$@
Коли я використовую це для дзвінка, bash
наприклад, він працює:
kjfletch@flatbed:~$ envrun.sh bash
kjfletch@flatbed:~$ echo $LD_LIBRARY_PATH
/home/kjfletch/local/lib:
kjfletch@flatbed:~$ echo $TESTER
MY TEST VAR
Коли я використовую його для виклику терміналу ( xterm
, aterm
, ...) моя LD_LIBRARY_PATH
отримує знята з охорони:
kjfletch@flatbed:~$ echo $LD_LIBRARY_PATH
kjfletch@flatbed:~$ echo $TESTER
MY TEST VAR
Чому це відбувається? Як я можу це зупинити? (Я запускаю Debian 5.0)
Оновлення
Мій термінал не викликає bash як логін:
kjfletch@flatbed:~$ echo $0
bash
Моя LD_LIBRARY_PATH
не відображається в жодному з файлів запуску bash (крім .bash_history та ~ / .profile не існує.):
kjfletch@flatbed:~$ grep "LD" ~/.bash*
kjfletch@flatbed:~$ grep "LD" /etc/bash.bashrc
kjfletch@flatbed:~$ grep "LD" /etc/profile