Mam prosty problem ze zrozumieniem zachowania w systemie Linux. W skrócie, na Linuksie, jeśli wywołuję mój skrypt sh z "Desktop Shortcut", skrypt nie może zobaczyć najnowszych zmiennych środowiskowych (ustawionych w bashrc). Więc zastanawiałem się, w jakim zakresie znajduje się ten skrypt powłoki?.Bashrc nie jest czytany, gdy skrypt powłoki jest wywoływany ze skrótu na pulpicie
Aby utworzyć testcase i reprodukować:
Tworzenie prostych skryptów powłoki 'testme.sh':
!/bin/sh echo "Hi This is a test script checking the env var"; echo "TESTVAR = $TESTVAR"; read in echo "Done";
utworzyć na pulpicie skrót do skryptu powyżej.
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
- teraz zaktualizować plik .bashrc ustawić zmienną
export TESTVAR=test_this_variable
otworzyć nowy terminal marki i uruchomić skrypt przy użyciu to pełna ścieżka jak '' ~/testme.sh // Widać wartość dla zmiennej "TESTVAR" z pliku .bashrc.
Teraz wystarczy dwukrotnie kliknąć i wykonać skrót na pulpicie. // To powinno otworzyć terminal i wydrukować wartość "TESTVAR" jako pustą. // Więc moje pytanie brzmi: kto jest rodzicem dla terminala otwartego tym skrótem?
Próbowałem tego na RHL. Poszukuję rozwiązania lub w/a dla tego problemu, mam nadzieję, że ktoś może wkrótce pomóc.
Dzięki, Abhishek.