У меня простая проблема с пониманием поведения в Linux. Короче говоря, на linux, если я вызываю свой sh-скрипт из «Ярлыка рабочего стола», тогда скрипт не может видеть последние переменные среды (заданные в bashrc). Поэтому мне было интересно, в какой области находится этот скрипт оболочки? воспроизвести:
Создайте простой сценарий оболочки 'testme.sh':
! / bin / sh echo "Привет, это тестовый скрипт, проверяющий переменную env"; echo "TESTVAR = $ TESTVAR"; читать в эхо «Готово»;
создать ярлык на рабочем столе для приведенного выше сценария.
cd ~ / Desktop vi mytest-desktop.desktop // Содержимое mytest-desktop.desktop: [Desktop Entry] Версия = 1.0 Тип = Приложение Имя = TestAbhishek Exec = / домашний / abhishek / test / hello.sh Терминал = истина
export TESTVAR=test_this_variable
Откройте новый терминал и выполните сценарий, используя его полный путь, например '~ / testme.sh' // Это может увидеть значение переменной 'TESTVAR' из файл .bashrc.
Теперь просто дважды щелкните и запустите ярлык на рабочем столе. // Это должно открыть терминал и распечатать значение TESTVAR как пустое. // Итак, мой вопрос: кто является родительским для терминала, открываемого этим ярлыком?
Я пробовал это на БРЗ. Я ищу решение этой проблемы, надеюсь, скоро кто-нибудь поможет.
Спасибо, Абхишек.