Atrapa SIGINT en bash, maneja Y ignora

¿Es posible en bash interceptar un SIGINT, hacer algo y luego ignorarlo (mantener a bash en ejecución)?

Sé que puedo ignorar el SIGINT con

trap '' SIGINT

Y también puedo hacer algo en el sigint con

trap handler SIGINT

Pero eso aún detendrá el guión después de lahandler ejecuta P.ej.

#!/bin/bash

handler()
{
    kill -s SIGINT $PID
}

program &
PID=$!

trap handler SIGINT

wait $PID

#do some other cleanup with results from program

Cuando presiono ctrl + c, se enviará el SIGINT para programar, pero bash saltará elwait ANTES de que el programa se cerrara correctamente y creara su salida en su controlador de señales.

Usando la respuesta @suspectus puedo cambiar elwait $PID a:

while kill -0 $PID > /dev/null 2>&1
do
    wait $PID
done

Esto realmente funciona para mí, no estoy 100% seguro de si esto es 'limpio' o una 'solución sucia'.

Respuestas a la pregunta(1)

Su respuesta a la pregunta