3

のように見えます

trap on_sigint SIGINT

SIGINTキャッチされたらすぐにスクリプトを停止します。その後、on_sigintが実行されます。SIGINTスクリプトを停止せずに処理することはできますか?

4

1 に答える 1

6

SIGINTハンドラの実行後にスクリプトを強制終了しません。以下は自己完結型の小さなテスト ケースです。

trap on_sigint SIGINT
on_sigint() { echo "caught"; }

{ sleep 3; kill -SIGINT $$; } &

echo "Waiting for sigint"
sleep 5
echo "Still running"

出力は次のとおりです。

Waiting for sigint
caught
Still running

あなたの観察が正しければ、最後の行はそこにありませんでした。

于 2014-01-19T02:00:46.303 に答える