Страница 1 из 1

Не выполняется простой скрипа cd /home, почему так?

Добавлено: 08.03.2018 22:54
жучара
Друзья! Скрипт называется test.sh
user@astra:~$ cat test.sh
#!/bin/bash
cd /home
user@astra:~$


Пробую выполнять:
user@astra:~$ bash test.sh
user@astra:~$ pwd
/home/user
user@astra:~$ ./test.sh
user@astra:~$ pwd
/home/user
user@astra:~$

Бесполезно, как видите. Сразу свойства test.sh выведу:

user@astra:~$ ls -l test.sh
-rwxr-xr-x 1 user user 21 мар 9 00:39 test.sh
user@astra:~$


ЧЯДНТ? Спасибо, кто откликнется.

Re: Не выполняется простой скрипа cd /home, почему так?

Добавлено: 08.03.2018 23:09
serzh-z
жучара
Вызов `bash test.sh` запускает дочерний процесс Bash, в котором выполняется указанный скрипт. Никакой связи между текущим и дочерним процессами нет - у каждого свой PWD.

Re: Не выполняется простой скрипа cd /home, почему так?

Добавлено: 08.03.2018 23:14
жучара
serzh-z, нормально. А что мне делать-то, не подскажите?
Вот решение нашёл какое-то
user@astra:~$ . ./test.sh
user@astra:/home$

или так:
user@astra:~$ source ./test.sh
user@astra:/home$

Но так-то ужас, конечно.

Re: Не выполняется простой скрипа cd /home, почему так?

Добавлено: 08.03.2018 23:38
serzh-z
жучара писал(а):
08.03.2018 23:14
А что мне делать-то, не подскажите?
Делать для чего? Если нужна короткая команда для перехода в /home, то можно сделать псевдоним: `alias cdh=cd /home`.

Re: Не выполняется простой скрипа cd /home, почему так?

Добавлено: 09.03.2018 13:08
Фантом
удалено