każdym uruchomieniu skryptu logowania na swojej skorupy, nowa podproces zrodził i wykonanie skryptu odbywa się w subshell.Once skrypt zakończeniu zjazdu podpowłoki i następuje powrót do shell.Hence logowania gdy robisz cd poprzez skrypt, katalog zostaje zmieniony na ścieżkę określoną przez cd, ale skrypt czasu powróci do powłoki logowania do katalogu roboczego, od którego uruchomiłeś skrypt.
Droga do pokonania to używanie,
source yourscript.sh
jakiego źródła robi to wykonuje skrypt jako skrypt TCL, to znaczy, że ma taki sam efekt jak po wpisaniu każdego wiersza w wierszu poleceń swojego loginu powłoka i jest ona wykonywana z tego miejsca. Tak więc, gdy skrypt kończy się po cd, pozostaje w tym katalogu.
Wprowadzam kilka zmian w kodzie przykładowym. W bashu ** cd ** sholud robi alias lub funkcję. – qrtt1
Podobna: [Dlaczego "cd" nie działa w skrypcie powłoki bash? "] (Http://stackoverflow.com/questions/255414/why-doesnt-cd-work-in-a-bash-shell-script) –