Вот упрощенная версия кода, над которым я работаю:
#!/bin/bash
term() {
echo ctrl c pressed!
# perform cleanup - don't exit immediately
}
trap term SIGINT
sleep 100 &
wait $!
Как видите, я бы хотел перехватить CTRL + C / SIGINT
и обработать их с помощью пользовательской функции для выполнения какой-либо операции очистки, а не для немедленного выхода.
Однако, после нажатия CTRL + C , на самом деле кажется, что, хотя я вижу, что ctrl c pressed!
отражается, как и ожидалось, команда wait
также убивается чего бы я не хотел (часть моей операции очистки убивает sleep
чуть позже, но сначала делает некоторые другие вещи). Есть ли способ предотвратить это, то есть остановить CTRL + C вход, отправляемый на команду wait
?