Ваш скрипт запускается в новой не -интерактивной оболочке, которая является ответвлением вашей текущей (интерактивной )оболочки. Любые изменения, внесенные в новую порожденную оболочку, отражаются только на время существования скрипта. Таким образом, в вашем случае cd
к новому пути отражается только в новой оболочке и будет , а не отражаться обратно в родительскую оболочку, потому что порожденная оболочка выходит, когда ваш скрипт завершается.
Вы можете запустить свой сценарий в той же оболочке, из которой вы запускаете сценарий, используя встроенную команду -в source
(вbash
)или POSIX -ly с помощью команды .
. когда скрипт становится исполняемым. Попробуйте сделать
. script.sh
или в оболочке Борна снова bash
, используяsource
source script.sh