我在理解 linux 中的行为时遇到了一个简单的问题。简而言之,在 Linux 上,如果我从“桌面快捷方式”调用我的 sh 脚本,则该脚本无法看到最新的环境变量(在 bashrc 中设置)。所以我想知道这个shell脚本位于什么范围内?
要创建测试用例并重现:
创建一个简单的 shell 脚本 'testme.sh' :
!/bin/sh echo "嗨,这是一个检查环境变量的测试脚本"; 回声“TESTVAR = $TESTVAR”; 读入 回声“完成”;
为上面的脚本创建一个桌面快捷方式。
cd ~/桌面 vi mytest-desktop.desktop //mytest-desktop.desktop 的内容是: [桌面入口] 版本=1.0 类型=应用 名称=TestAbhishek 执行=/home/abhishek/test/hello.sh 终端=真
- 现在更新您的 .bashrc 文件以设置变量
导出 TESTVAR=test_this_variable
打开一个全新的终端并使用它的完整路径执行脚本,如'~/testme.sh' //这可以从.bashrc文件中看到变量'TESTVAR'的值。
现在,只需双击并执行桌面快捷方式。//这应该打开一个终端并将“TESTVAR”的值打印为空白。//所以我的问题是,这个快捷方式打开的终端的父级是谁?
我在 RHL 上试过这个。我正在寻找这个问题的解决方案或 aw/a,希望有人能尽快提供帮助。
谢谢,阿布舍克。