Как вы можете видеть ниже, убедитесь, что ваш вызов cd
не выполняется внутри подоболочки.Если это так, это не сработает, source
или нет.
Скрипт с cd
в подоболочке
#!/bin/bash
( cd /etc ) # thie exec's in a subshell
Вывод
$ pwd
/home/siegex
$ source ./cdafterend.sh && pwd
/home/siegex
Скрипт с cd
, а не в подоболочке
#!/bin/bash
cd /etc # no subshell here
Выход
$ pwd
/home/siegex
$ source ./cdafterend.sh && pwd
/etc