我有一个简单的问题,不理解Linux中的一个行为。简而言之,在Linux上,如果我从“桌面快捷方式”调用我的sh脚本,则该脚本无法看到最新的环境变量(在bashrc中设置)。因此,我想知道这个shell脚本位于什么范围内?
创建测试用例并重现:
1. 创建一个简单的shell脚本'testme.sh':
!/bin/sh echo "Hi This is a test script checking the env var"; echo "TESTVAR = $TESTVAR"; read in echo "Done";
2. 为上述脚本创建桌面快捷方式。
cd ~/Desktop vi mytest-desktop.desktop
//mytest-desktop.desktop的内容如下: [Desktop Entry] Version=1.0 Type=Application Name=TestAbhishek Exec=/home/abhishek/test/hello.sh Terminal=true 3. 现在更新您的.bashrc文件以设置变量。
export TESTVAR=test_this_variable 4. 打开全新的终端并使用完整路径执行脚本,例如'~/testme.sh'。这可以从.bashrc文件中查看变量'TESTVAR'的值。
5. 现在,只需双击并执行桌面快捷方式。这应该打开一个终端并将“TESTVAR”的值打印为空白。因此,我的问题是,由此快捷方式打开的终端的父级是谁?
我已经在RHL上尝试过这个问题。我正在寻找解决方案或解决此问题的方法,希望有人能尽快帮助。
谢谢, Abhishek.
创建测试用例并重现:
1. 创建一个简单的shell脚本'testme.sh':
!/bin/sh echo "Hi This is a test script checking the env var"; echo "TESTVAR = $TESTVAR"; read in echo "Done";
2. 为上述脚本创建桌面快捷方式。
cd ~/Desktop vi mytest-desktop.desktop
//mytest-desktop.desktop的内容如下: [Desktop Entry] Version=1.0 Type=Application Name=TestAbhishek Exec=/home/abhishek/test/hello.sh Terminal=true 3. 现在更新您的.bashrc文件以设置变量。
export TESTVAR=test_this_variable 4. 打开全新的终端并使用完整路径执行脚本,例如'~/testme.sh'。这可以从.bashrc文件中查看变量'TESTVAR'的值。
5. 现在,只需双击并执行桌面快捷方式。这应该打开一个终端并将“TESTVAR”的值打印为空白。因此,我的问题是,由此快捷方式打开的终端的父级是谁?
我已经在RHL上尝试过这个问题。我正在寻找解决方案或解决此问题的方法,希望有人能尽快帮助。
谢谢, Abhishek.