Скрипт, позволяющий пользователю отменить выход из оболочки

Скрипт, позволяющий пользователю отменить выход из оболочки

Я хочу написать скрипт для отображения сообщения и возможной отмены выхода из интерактивной оболочки. Это потому, что я часто запускаю фоновые задания в некоторых своих оболочках и в момент выхода из всех, закрывая запущенные задания. Мне нужен скрипт вроде:

# 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 вывести уведомление, если какие-либо задания остались запущенными. Если есть запущенные задания, вам придется дважды попытаться выйти, чтобы действительно выйти.

Связанный контент