上へArchlinux64
。VirtualBox
次のようにSIGINTトラップを宣言すると:
trap 'echo x' INT
ssh
セッション(実行中)で+を数回bash
押すと、端末に何かが数回表示されます。以下はより複雑な例です。 Ctrl-cを21回押した後:CtrlC
[il@vmarch ~]$ n=0; trap 'echo " $n'\’'th INT"; n=$((n+1))' INT
[il@vmarch ~]$ ^C 0’th INT
[il@vmarch ~]$ ^C 7’th INT
[il@vmarch ~]$ ^C 8’th INT
[il@vmarch ~]$ ^C 9’th INT
[il@vmarch ~]$ ^C 18’th INT
[il@vmarch ~]$ ^C 21’th INT
Ctrl+を押すだけでCこの効果が表示されます。SIGINT
明示的に(経由でkill
)送信すると、予想されるすべてのメッセージが届きます。複数の端末エミュレータで再現可能です。テキストコンソール(/dev/tty1
)には表示されません。zsh
と同様の症状dash
:結果はzshでほぼ同じです。ダッシュではトラップは機能しませんが、トラップがないと改行文字やプロンプトも削除されます。
Ctrl+を押す前に5〜10秒間何もしないと、Cデータが削除される可能性が高くなります。
$ uname -a
Linux vmarch.lan 4.0.4-2-ARCH #1 SMP PREEMPT Fri May 22 03:05:23 UTC 2015 x86_64 GNU/Linux