Das ist normal. Das Verzeichnis "current" oder "working" ist ein pro-prozessorischer Parameter, und ein Prozess kann nur sein eigenes Arbeitsverzeichnis ändern . Standalone - Skripte werden als separate Shell - Prozess ausgeführt und kann nicht die übergeordnete Shell beeinflussen (in der Tat könnte die Eltern nicht immer sein ein Shell).
Sie müssen für Ihre Shell interne Funktionen verwenden, z.
Shell-Funktionen:
mycd() { cd /media/hard/drive/partitionX/; pwd; }
Shell-Aliase:
alias mycd='cd /media/hard/drive/partitionX; pwd'
"source" ein Skript, anstatt es auszuführen:
. mycd.sh
Wenn Sie hauptsächlich Verknüpfungen zu bestimmten Verzeichnissen erstellen möchten, können Sie auch Folgendes verwenden:
Symlinks an einem günstigeren Ort:
ln -s /media/hard/drive/partitionX ~/partX cd ~/partX
Variablen ($ mydir):
mydir=/media/hard/drive cd $mydir
die $ CDPATH-Funktion:
CDPATH=".:/media/hard/drive" cd partitionX