Как изменить каталог с помощью скрипта

10

У меня есть этот сценарий

#!/bin/bash
cd /home/user/somedir
pwd

он работает, как и ожидалось, но я хотел бы, чтобы этот скрипт перенес меня в / home / user / somedir, но я остаюсь в том же каталоге.

Как написать скрипт, который доставит меня (в gnome-терминал) в / home / user / somedir?

UAdapter
источник

Ответы:

14

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

Чтобы получить его:

. myfile.sh

или

source myfile.sh

Вы можете прочитать больше здесь

danjjl
источник
Я просто собирался добавить это ... UAdadapter, если вы запускаете скрипт shelll, такой как sh myfile.sh или ./myfile.sh, он будет работать, как описано в danjil. Любой из вариантов Данджила должен работать для вас.
itnet7
3

Используйте exec bashв конце

Сценарий bash работает в своей текущей среде или в среде своих дочерних элементов, но никогда в родительской среде.

Однако этот вопрос часто задают, потому что кто-то хочет остаться в приглашении bash в определенном каталоге после выполнения сценария bash из другого каталога.

Если это так, просто запустите дочерний экземпляр bash в конце скрипта:

#!/bin/bash
cd /home/user/somedir
exec bash
Серж Строобандт
источник