У меня простая проблема с пониманием поведения в Linux. Короче говоря, в Linux, если я вызываю свой sh-скрипт из «Ярлыка на рабочем столе», скрипт не может видеть последние переменные среды (установленные в bashrc). Мне было интересно, в каком объеме находится этот сценарий оболочки?
Чтобы создать тестовый пример и воспроизвести:
Создайте простой сценарий оболочки testme.sh:
!/bin/sh echo "Hi This is a test script checking the env var"; echo "TESTVAR = $TESTVAR"; read in echo "Done";
создайте ярлык на рабочем столе для приведенного выше сценария.
cd ~/Desktop vi mytest-desktop.desktop //Contents for mytest-desktop.desktop are : [Desktop Entry] Version=1.0 Type=Application Name=TestAbhishek Exec=/home/abhishek/test/hello.sh Terminal=true
- Теперь обновите файл .bashrc, чтобы установить переменную
export TESTVAR=test_this_variable
Откройте новый терминал и выполните сценарий, используя его полный путь, например '~ / testme.sh' // Это может увидеть значение переменной 'TESTVAR' из файла .bashrc.
Теперь просто дважды щелкните и запустите ярлык на рабочем столе. // Это должно открыть терминал и распечатать значение TESTVAR как пустое. // Итак, мой вопрос: кто является родительским для терминала, открытого с помощью этого ярлыка?
Я пробовал это на БРЗ. Я ищу решение или ж / д для этой проблемы, надеюсь, кто-то скоро поможет.
Спасибо, Абхишек.