當第一個指令被 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

相關內容