本文介绍了当shell脚本是从桌面快捷方式调用的.bashrc不读的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个简单的问题,了解在Linux中的行为。总之,在Linux上,如果我调用我的sh脚本从桌面快捷方式,那么脚本无法看到最新的环境变量(以bashrc中集)。所以我想知道,在什么范围这个shell脚本位于何处?

要创建测试用例和复制:


  1. 创建一个简单的shell脚本'testme.sh


    !/ bin / sh的
    回声这是一个测试脚本检查的环境变量;
    回声的testvar = $的testvar;
    阅读
    回声完成;


  2. 创建上面的脚本的桌面快捷方式。


    CD〜/桌面
    六mytest的-desktop.desktop
    //为mytest的-desktop.desktop内容是:
    [桌面入口]
    版本= 1.0
    类型=应用
    NAME = TestAbhishek
    EXEC = /家庭/阿布舍克/测试/ hello.sh
    终端=真


  3. 现在,更新您的.bashrc文件中设置变量

   


   出口的testvar = test_this_variable
   


  1. 打开一个全新的终端,并使用它像'〜/ testme.sh'//此可以看到从.bashrc文件变量的testvar'的值完整路径执行脚本。


  2. 现在,只需双击并执行桌面快捷方式。
    //这应该打开一个终端和'的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不读的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 01:11