I have a simple problem understanding a behavior in linux. In short, on linux if i invoke my sh script from a 'Desktop Shortcut' then the script cannot see the latest environment variables (set in bashrc). So i was wondering that in what scope is this shell script located ?
To create a testcase and reproduce:
Create a simple shell script 'testme.sh' :
!/bin/sh
echo "Hi This is a test script checking the env var";
echo "TESTVAR = $TESTVAR";
read in
echo "Done";
create a desktop shortcut for the script above.
cd ~/Desktop
vi mytest-desktop.desktop
//Contents for mytest-desktop.desktop are :
[Desktop Entry]
Version=1.0
Type=Application
Name=TestAbhishek
Exec=/home/abhishek/test/hello.sh
Terminal=true
- Now update your .bashrc file to set the variable
export TESTVAR=test_this_variable
Open a brand new terminal and execute the script using it's complete path like '~/testme.sh' //This can see the value for variable 'TESTVAR' from the .bashrc file.
Now, simply double click and execute the Desktop shortcut.
//This should open a terminal and print out value for 'TESTVAR' as blank.
//So my question is, who is the parent for the terminal opened by this shortcut?
I've tried this on RHL.
Im looking for a solution or a w/a for this problem, hope someone can help soon.
Thanks,
Abhishek.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…