本文介绍了当shell脚本是从桌面快捷方式调用的.bashrc不读的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个简单的问题,了解在Linux中的行为。总之,在Linux上,如果我调用我的sh脚本从桌面快捷方式,那么脚本无法看到最新的环境变量(以bashrc中集)。所以我想知道,在什么范围这个shell脚本位于何处?
要创建测试用例和复制:
-
创建一个简单的shell脚本'testme.sh
!/ bin / sh的
回声这是一个测试脚本检查的环境变量;
回声的testvar = $的testvar;
阅读
回声完成; -
创建上面的脚本的桌面快捷方式。
CD〜/桌面
六mytest的-desktop.desktop
//为mytest的-desktop.desktop内容是:
[桌面入口]
版本= 1.0
类型=应用
NAME = TestAbhishek
EXEC = /家庭/阿布舍克/测试/ hello.sh
终端=真 - 现在,更新您的.bashrc文件中设置变量
出口的testvar = test_this_variable
-
打开一个全新的终端,并使用它像'〜/ testme.sh'//此可以看到从.bashrc文件变量的testvar'的值完整路径执行脚本。
-
现在,只需双击并执行桌面快捷方式。
//这应该打开一个终端和'的testvar空白打印出值。
//所以我的问题是,谁是针对终端的家长通过此快捷方式打开?
我已经试过这对RHL。
即时寻找这个问题的解决方案或W / A,希望有人能帮助尽快
谢谢,
阿布舍克。
解决方案
看到 INVOCATION 在bash手册页的部分。下面是摘录
Long story short, if you want non-interactive shell's to have certain ENV vars set, then put them in ~/.bash_profile
instead of ~/.bashrc
这篇关于当shell脚本是从桌面快捷方式调用的.bashrc不读的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!