LINUX.ORG.RU

команда cd в скриптах bash

 , , ,


0

2

Вопрос только для терпеливых.
На форуме уже обсуждалось, хочу только уточнить: это нормальная ситуация?

Суть вопроса: при использовании в shell-скриптах команды cd она работает, как положено, например:

mkdir d1
cd d1
touch f1

создаст в текущем каталоге подкаталог d1, перейдет в него и создаст там файл f1. Но после завершения работы скрипта текущим каталогом останется прежний каталог.
При этом команда cd в консоли нормально меняет текущий каталог.
Сменить текущий каталог в консоли при помощи скрипта можно либо так:

. scriptname
# или тоже самое:
source scriptname
или так:
cd d1; bash
В последнем случае работа скрипта (т.е. дочернего процесса) не будет завершена, чтобы его завершить надо выполнить 'exit' или нажать Ctrl+D, текущий каталог сменится на первоначальный.

В принципе, все понятно про родительский и дочерний процесс, вот толковое объяснение.
Обратил внимание, что иногда при запуске скриптов, оболочка меняет текущий каталог. Возможно, это связано с импортом других файлов через source.

Спасибо.

это нормальная ситуация?

да
/thread

anonymous ()
Ответ на: комментарий от carabo
 6) информ.
  а) поток сообщений на одну тему (в электронной почте или телеконференции)
anonymous ()
Ответ на: комментарий от carabo

а что значит /thread ?

Это означает, что тема исчерпана, и тред можно закрывать.

Black_Shadow ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.