Перезагрузите bash .profile без выхода и снова войдите


81

Можно ли заставить bash перезагрузить файл .profile без выхода и повторного входа?

Ответы:


102

Это должно работать для текущего терминала:

. ~/.profile

.является bashвстроенным и синонимом source, смотрите man bash:

, filename [ arguments ]
исходное имя файла [ arguments ]
     Чтение и выполнение команд из имени файла в текущей среде оболочки (…).


18
Это будет действовать только в текущем терминале.
энзотиб

@enzotib Есть ли способ обойти это?
Мэтти

14
@Matty: нет, чтобы сделать изменения видимыми для всей графической среды, вы можете только перезапустить сеанс
enzotib

2
Единственная проблема, связанная с этим, заключается в том, что если вы удалите что-либо из пути, это не вступит в силу, пока вы не перезагрузите компьютер
Aras

1
@Aras делает важный момент , который заслуживает расширения: Если что - то удаляется из ~/.profile, что изменения будут не вступят в силу после . ~/.profileперезагрузки. Например, добавьте функцию в ~/.profile:, function externalip () { curl http://ipecho.net/plain; echo; }затем ~/.profile- ЭТО РАБОТАЕТ. Теперь удалите эту функцию из ~/.profile, затем . ~/.profileснова. Функция по-прежнему доступна - только перезапуск (выход и выход) удалит ее.
Симус

13

Если вы не хотите запускать новую оболочку, а выполняете сценарий в текущей оболочке, вы получаете ее:

source script_name.sh

source знак равно .

sourceВстроенный в Bash является синонимом команды оболочки Bourne .(точка).

вежливость - tldp.org

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.