Przechodzenie między katalogami po zakończeniu skryptu -bash

Mam taką małą drobnostkę.

Powiedzmy, że mam sobie skrypt

mkdir test

cd test

touch 1.cpp

Powiedzmy sobie też, że wykonuje go będąc w /home/kuba/

Po wykonaniu tego skryptu wszystko się utworzy jednak nadal będę w /home/kuba/ Co muszę dopisać, żebym po zakończeniu skryptu był w /home/kuba/test/

Próbowałem googlować ale nie za bardzo wiem jak zbudować zapytanie do wuja

Dzięki :slight_smile:

Nic. Po wykonaniu tego skryptu powinieneś być w ~/test (cd test).

Hm, a możesz to sprawdzić, bo u mnie po wykonaniu tego nadal jestem w /home/kuba/

Masz rację. Trzeba poczekać na specjalistów, bo sam nigdy w bashu skryptów nie pisałem.

Co prawda specjalistą nie jestem, ale i tak odpowiem :stuck_out_tongue:

W normalnych warunkach bash wykonuje skrypty w swojej “izolowanej” kopii - dlatego nie zapamiętuje nie tylko ostatniego położenia, ale też zawartości użytych wewnątrz skryptu zmiennych. Nie ma wiele możliwości na obejście tego faktu - jedyny z jakim się spotkałem, to zmusić bash do wykonania skryptu “w sobie”, np. poprzez uruchamianie go z kropką przed nazwą:

. nazwa_skryptu

Zaznaczam, że takie wykonanie nieznanego (lub po prostu niesprawdzonego pod kątem błędów) skryptu jest, delikatnie mówiąc, lekkomyślne. Należy przy tym pamiętać, że wszystkie zdefiniowane/zmienione w skrypcie zmienne zostaną zapamiętane w powłoce - ze wszystkimi tego konsekwencjami.

Tak na marginesie - jeżeli przewidujesz, że skrypt ma być uruchamiany w ten sposób - uważaj jakich używasz w nim poleceń - np. nieodpowiednio użyte “exit” zamiast zakończenia skryptu spowoduje wylogowanie…

Serdecznie dzięki, właśnie o to mi chodziło :slight_smile: