O comando para procurar por Ctrl + C (o sinal INT) é trap
.
#!bin/bash
MSG="Hello, world!"
trap "clear; echo -e $MSG" SIGINT SIGTERM
while :
do
sleep 60
done
Update - Outros sinais que podem ser capturados com armadilha
SIGINT
- Ctrl-c
SIGQUIT
- Ctrl- \ (isso irá encerrar o programa, mas os comandos no trap ainda serão executados)
SIGSTOP
(Ctrl-z) não parece ser capturado pela armadilha.
trap
também pode capturar sinais emitidos por kill
, mas não tenho certeza de quantos deles podem ser capturados.
trap
também suporta alguns outros nomes especiais: -% EXIT
, DEBUG
, RETURN
e ERR
.
Outras documentações podem ser encontradas no manual de referência bash .