всякий раз, когда вы запускаете сценарий в своей оболочке входа в систему, создается новый подпроцесс, и выполнение сценария выполняется в подоболочке. После завершения сценария подоболочка завершается, и вы возвращаетесь в оболочку входа в систему. cd через сценарий, каталог изменяется на путь, указанный в cd, но к моменту завершения сценария вы возвращаетесь в свою оболочку входа в рабочий каталог, откуда вы запустили сценарий.
Способ преодолеть это использование,
source yourscript.sh
что делает источник, он выполняет сценарий как сценарий TCL, то есть он имеет тот же эффект, что и при вводе каждой строки в командной строке оболочки входа в систему, и он выполняется оттуда. Таким образом, когда скрипт завершает работу после cd, он остается в этом каталоге.