Я хочу выполнить определенный sh сценарий при закрытии терминала.
Я отредактировал .bash-logout
файл, добавила эта строка кода внутри если оператор
[ -x /home/user/Documents/logout_msg.sh ] && /home/user/Documents/logout_msg
Я сделал logout_msg.sh
исполняемый файл, и также за пределами того, если оператор я добавил основное сообщение эха с командой сна после, но это не показывает при закрытии терминала.
Какова могла бы быть проблема?
~/bash_logout
файл только получен при выходе из оболочки входа в систему (от man bash
):
Когда интерактивная оболочка входа в систему выходит, или неинтерактивная оболочка входа в систему выполняет выход встроенная команда, удар читает и выполняет команды из файла ~/.bash_logout, если это существует.
При открытии терминала Вы выполняете интерактивную оболочку невхода в систему, таким образом, ~/bash_logout
не релевантно. Для больше на различных типах оболочки, см. мой ответ здесь.
Чтобы иметь что-то, выполнился каждый раз, когда Вы закрываете терминал, Вы могли использовать trap
для установки команды для выполнения каждый раз, интерактивная сессия удара выходит. Чтобы сделать это, добавьте эту строку к Вашему ~/.bashrc
:
trap /home/user/Documents/logout_msg.sh EXIT
Конечно, если тот сценарий печатает сообщение к терминалу, необходимо удостовериться Ваш logout_msg.sh
включает a sleep
управляйте, таким образом, у пользователя будет время для чтения сообщения. Что-то как:
echo "Whatever message you want"
sleep 10 ## wait for 10 seconds