概要
以下、自分用のメモです。知ってるとちょっと便利なときがあるかもしれません。
業務などで、ターミナルで作業してて、時間がかかるバッチ処理なんかをコマンドで実行している場合に
ボケーっとしてて、不意にCtrl-Cを押してしまって処理が中断されてしまった経験とかあるでしょうか・・(私は何回もあります)
まあ、自分が悪いのですが、ボケーっとしてしまうのを止めるのは難しいので、一時的に Ctrl-C で SIGINT を飛ばないようにしてしまうことをよくやります。
sttyコマンドを使います。
やり方
以下のようにします。
# 時間がかかるコマンドを実行するとします $ sleep 10 # ここで Ctrl-C を押すとSIGINTが飛んで中断されます ^C $ # stty コマンドを使って SIGINT を Ctrl-N で飛ばすように一時的に設定 $ stty intr ^n # もう一度時間がかかるコマンドを実行 $ sleep 10 # 今度は Ctrl-C 押しても無視されて、Ctrl-N押すと中断されます ^C^C^C^C^N $ # 元に戻す $ stty intr ^c $ sleep 10 ^C $
参考情報
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。