Это нормально. «Текущий» или «рабочий» каталог является параметром для процесса, и процесс может изменить только свой рабочий каталог. Автономные сценарии выполняются как отдельный процесс оболочки и не могут влиять на родительскую оболочку (фактически родитель не всегда может быть оболочкой).
Вам нужно будет использовать функции, встроенные в вашу оболочку, такие как:
функции оболочки:
mycd() { cd /media/hard/drive/partitionX/; pwd; }
псевдонимы оболочки:
alias mycd='cd /media/hard/drive/partitionX; pwd'
«источник» сценария вместо его выполнения:
. mycd.sh
Если вашей главной целью является создание ярлыков для определенных каталогов, вы также можете использовать:
символические ссылки в более удобном месте:
ln -s /media/hard/drive/partitionX ~/partX cd ~/partX
переменные ($ mydir):
mydir=/media/hard/drive cd $mydir
функция $ CDPATH:
CDPATH=".:/media/hard/drive" cd partitionX