Mam skrypt powłoki, aby skonfigurować niektóre zmienne środowiskowe i uruchomić dowolny program, który wysyłam jako argument:
export PATH=$HOME/local/bin:$PATH
export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH
export TESTER="MY TEST VAR"
$@
Kiedy używam tego, aby bash
na przykład zadzwonić , działa:
kjfletch@flatbed:~$ envrun.sh bash
kjfletch@flatbed:~$ echo $LD_LIBRARY_PATH
/home/kjfletch/local/lib:
kjfletch@flatbed:~$ echo $TESTER
MY TEST VAR
Kiedy używam go nazwać terminal ( xterm
, aterm
...) My LD_LIBRARY_PATH
dostaje rozbrojony:
kjfletch@flatbed:~$ echo $LD_LIBRARY_PATH
kjfletch@flatbed:~$ echo $TESTER
MY TEST VAR
Dlaczego to się dzieje? Jak mogę to zatrzymać? (Używam Debian 5.0)
Aktualizacja
Mój terminal nie nazywa się bash jako login:
kjfletch@flatbed:~$ echo $0
bash
My LD_LIBRARY_PATH
nie pojawia się w żadnym z plików startowych bash (oprócz .bash_history i ~ / .profile nie istnieje.):
kjfletch@flatbed:~$ grep "LD" ~/.bash*
kjfletch@flatbed:~$ grep "LD" /etc/bash.bashrc
kjfletch@flatbed:~$ grep "LD" /etc/profile