Script Bash que deve fazer coisas quando o primeiro comando é interrompido por CTRL + C

Script Bash que deve fazer coisas quando o primeiro comando é interrompido por CTRL + C

Quero fazer um script bash para automatizar uma tarefa simples. Esta tarefa envolve executar um program(não feito por mim) que faz algo até que o usuário pressione CTRL+C. Depois disso, eu tenho que process the output. Eu escrevi isto:

#!/bin/bash
program
process the output

programinicia conforme o esperado, mas quando pressiono CTRL+C, process the outputnão é executado. Aposto que meu script sai completamente em CTRL+C.

Como posso conseguir o que preciso?

Responder1

Defina um manipulador de sinal para SIGINT:

trap "echo Ctrl+C received" INT
program
trap - INT
process the output

informação relacionada