我在理解 linux 中的行为时遇到了一个简单的问题。简而言之,在Linux上,如果我从“桌面快捷方式”调用sh脚本,则该脚本无法查看最新的环境变量(在bashrc中设置)。所以我想知道这个 shell 脚本位于什么范围内?
要创建测试用例并重现:
!/bin/sh
echo "嗨,这是一个检查环境变量的测试脚本";
echo "TESTVAR = $TESTVAR";
读入
echo "完成";
cd ~/桌面
vi mytest-desktop.desktop
//mytest-desktop.desktop 的内容是:
[桌面输入]
版本=1.0
类型=应用程序
名称=TestAbhishek
exec=/home/abhishek/test/hello.sh
终端=真
导出 TESTVAR=test_this_variable
//这应该打开一个终端并将“TESTVAR”的值打印为空白。
//所以我的问题是,这个快捷方式打开的终端的父级是谁?
我在 RHL 上试过这个。
我正在寻找解决方案或解决此问题的方法,希望有人能尽快提供帮助。
谢谢,
阿布舍克。
最佳答案
请参见bash手册页的 INVOCATION 部分。这是摘录
长话短说,如果您希望非交互式 shell 设置某些 ENV 变量,则将它们放入 ~/.bash_profile
而不是 ~/.bashrc