Вопрос только для терпеливых.
На форуме уже обсуждалось, хочу только уточнить: это нормальная ситуация?
Суть вопроса: при использовании в shell-скриптах команды cd она работает, как положено, например:
mkdir d1
cd d1
touch f1
создаст в текущем каталоге подкаталог d1, перейдет в него и создаст там файл f1.
Но после завершения работы скрипта текущим каталогом останется прежний каталог.
При этом команда cd в консоли нормально меняет текущий каталог.
Сменить текущий каталог в консоли при помощи скрипта можно либо так:
. scriptname
# или тоже самое:
source scriptname
cd d1; bash
В принципе, все понятно про родительский и дочерний процесс, вот толковое объяснение.
Обратил внимание, что иногда при запуске скриптов, оболочка меняет текущий каталог. Возможно, это связано с импортом других файлов через source.
Спасибо.