Использование 'exe c' в bash_profile останавливает вход в оболочку - PullRequest
1 голос
/ 20 февраля 2020

Я создаю следующий файл .bash_profile (из руководство linuxfromscratch ) для пользователя lfs:

exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash

При выполнении su - lfs я получаю:

[1]+  Stopped                 su - lfs

Выполнение fg возобновляет пользовательскую оболочку lfs. Почему это происходит?

1 Ответ

0 голосов
/ 20 февраля 2020

Это потому, что exec выполняет код в текущем процессе. Обычно команда выполняется в дочерней оболочке / среде. Попробуйте следующее:

$ bash        # open second shell
$ exec false  # close second shell
$ echo $?     # get exit code
$ exit        # close terminal

Справочная страница здесь не очень полезна. Я часто использую exec, если я запускаю сценарий через процесс Qt, и он должен закончиться через некоторое время, независимо от того, была ли команда завершена или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...