Quiero crear un script bash para automatizar una tarea sencilla. Esta tarea implica ejecutar un program
(no hecho por mí) que hace algo hasta que el usuario presiona CTRL+C. Después de eso, tengo que hacerlo process the output
. He escrito esto:
#!/bin/bash
program
process the output
program
comienza como se esperaba, pero cuando presiono CTRL+C, process the output
no se ejecuta. Apuesto a que mi secuencia de comandos simplemente sale por completo con CTRL+C.
¿Cómo puedo lograr lo que necesito?
Respuesta1
Establezca un controlador de señal para SIGINT:
trap "echo Ctrl+C received" INT
program
trap - INT
process the output