キャプチャされた信号が他の信号を繰り返すのはなぜですか?

キャプチャされた信号が他の信号を繰り返すのはなぜですか?

これは私のスクリプトです。

#!/bin/bash

# this is repeat-signal.sh

trap "echo got USR1; wait" USR1
trap "echo got INT" INT

(
  kill -s USR1 $$
  sleep 100
) &

wait

入力で実行すると、期待どおりに印刷されます./repeat-signal.sh。次に(ctrl + cを使用するか、他の端末から)信号を送信"got USR1"すると、2行が印刷されます。INTkill

got INT
got USR1

私はそれが印刷されるだけだと思いましたgot INT

got USR1信号を送信するINTときにこの行が印刷されるのはなぜですか?INT信号が何らかの形でUSR1信号を繰り返すようです。

明確にするために編集されました:

最後に、私の端末は次のようになります。

bash-5.0$ ./repeat-signal.sh
got USR1
^Cgot INT
got USR1

編集2:

実際、これはbash 3.2では発生しているようですが、bash 5.0では発生しません。

ベストアンサー1

おすすめ記事