Como man 1p trap
afirma que a ação (o primeiro argumento para trap
) é simplesmente avaliada sem mais informações sobre o sinal recebido, uma solução portátil pode ser instalar diferentes manipuladores para cada sinal:
#!/bin/sh
trap_sig() {
echo "Process (PID: $$) interrupted by signal $1." >&2
exit 2
}
# add trap to catch terminating signals
trap 'trap_sig INT' INT
trap 'trap_sig TERM' TERM
# […]