.bashrc не читается, когда сценарий оболочки вызывается из ярлыка на рабочем столе

У меня простая проблема с пониманием поведения в Linux. Короче говоря, на linux, если я вызываю свой sh-скрипт из «Ярлыка рабочего стола», тогда скрипт не может видеть последние переменные среды (заданные в bashrc). Поэтому мне было интересно, в какой области находится этот скрипт оболочки? воспроизвести:

  1. Создайте простой сценарий оболочки 'testme.sh':

    ! / bin / sh
    echo "Привет, это тестовый скрипт, проверяющий переменную env";
    echo "TESTVAR = $ TESTVAR";
    читать в
    эхо «Готово»;
    
  2. создать ярлык на рабочем столе для приведенного выше сценария.

     
     cd ~ / Desktop
    vi mytest-desktop.desktop 
    
    
    // Содержимое mytest-desktop.desktop: 
    [Desktop Entry]
    Версия = 1.0
    Тип = Приложение
    Имя = TestAbhishek
    Exec = / домашний / abhishek / test / hello.sh
    Терминал = истина
    
  3. Теперь обновите файл .bashrc, чтобы установить переменную.
   export TESTVAR=test_this_variable
   
  1. Откройте новый терминал и выполните сценарий, используя его полный путь, например '~ / testme.sh' // Это может увидеть значение переменной 'TESTVAR' из файл .bashrc.

  2. Теперь просто дважды щелкните и запустите ярлык на рабочем столе. // Это должно открыть терминал и распечатать значение TESTVAR как пустое. // Итак, мой вопрос: кто является родительским для терминала, открываемого этим ярлыком?

Я пробовал это на БРЗ. Я ищу решение этой проблемы, надеюсь, скоро кто-нибудь поможет.

Спасибо, Абхишек.

7
задан Abhishek 18 December 2010 в 08:37
поделиться