
Я хочу написать скрипт для отображения сообщения и возможной отмены выхода из интерактивной оболочки. Это потому, что я часто запускаю фоновые задания в некоторых своих оболочках и в момент выхода из всех, закрывая запущенные задания. Мне нужен скрипт вроде:
# If there are running jobs
if [ -z "$(jobs)" ]; then
# Display messages, give choices, etc.
...code...
# And finally, given some conditions (e.g. answers to questions, etc.)
cancel_logout
else
logout
Предположительно, вышеизложенное будет включено в ~/.bash_logout
.
решение1
Правильный способ сделать это — заставить bash выполнить проверку самостоятельно.
shopt -s checkjobs
Это заставит bash вывести уведомление, если какие-либо задания остались запущенными. Если есть запущенные задания, вам придется дважды попытаться выйти, чтобы действительно выйти.