最初のコマンドが CTRL+C で中断されたときに何かを実行する Bash スクリプト

最初のコマンドが CTRL+C で中断されたときに何かを実行する Bash スクリプト

簡単なタスクを自動化する bash スクリプトを作成したいと考えています。このタスクprogramでは、ユーザーが CTRL+C を押すまで何かを実行する (私が作成したものではありません) を実行します。その後、 を実行する必要がありますprocess the output。私は次のように書きました:

#!/bin/bash
program
process the output

program期待通りに起動しますが、CTRL+C を押してもprocess the output実行されません。 CTRL+C を押すとスクリプトが完全に終了すると思います。

どうすれば必要なことを達成できるでしょうか?

答え1

SIGINT のシグナル ハンドラを設定します。

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

関連情報