ฉันมีเชลล์สคริปต์เพื่อตั้งค่าตัวแปรสภาพแวดล้อมและเปิดโปรแกรมใด ๆ ที่ฉันส่งเป็นอาร์กิวเมนต์:
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
My LD_LIBRARY_PATH
ไม่แสดงในไฟล์ bash startup ใด ๆ (นอกเหนือจาก. bash_history และ ~ / .profile ไม่มีอยู่):
kjfletch@flatbed:~$ grep "LD" ~/.bash*
kjfletch@flatbed:~$ grep "LD" /etc/bash.bashrc
kjfletch@flatbed:~$ grep "LD" /etc/profile