Tôi có một tập lệnh shell để thiết lập một số biến môi trường và khởi chạy bất kỳ chương trình nào tôi gửi làm đối số:
export PATH=$HOME/local/bin:$PATH
export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH
export TESTER="MY TEST VAR"
$@
Khi tôi sử dụng điều này để gọi bash
ví dụ, nó hoạt động:
kjfletch@flatbed:~$ envrun.sh bash
kjfletch@flatbed:~$ echo $LD_LIBRARY_PATH
/home/kjfletch/local/lib:
kjfletch@flatbed:~$ echo $TESTER
MY TEST VAR
Khi tôi sử dụng nó để gọi một thiết bị đầu cuối ( xterm
, aterm
, ...) của tôi LD_LIBRARY_PATH
bị unset:
kjfletch@flatbed:~$ echo $LD_LIBRARY_PATH
kjfletch@flatbed:~$ echo $TESTER
MY TEST VAR
Lý do tại sao điều này xảy ra? Làm thế nào tôi có thể ngăn chặn điều này? (Tôi đang chạy Debian 5.0)
Cập nhật
Thiết bị đầu cuối của tôi không gọi bash là thông tin đăng nhập:
kjfletch@flatbed:~$ echo $0
bash
My LD_LIBRARY_PATH
không hiển thị trong bất kỳ tệp khởi động bash nào (ngoài .bash_history và ~ / .profile không tồn tại.):
kjfletch@flatbed:~$ grep "LD" ~/.bash*
kjfletch@flatbed:~$ grep "LD" /etc/bash.bashrc
kjfletch@flatbed:~$ grep "LD" /etc/profile