tail コマンドを使用して、スクリプトを監視して続行したいと考えています。「Ctrl+C」キーを押したときにスクリプト全体を停止したくありません。何か良い方法はありますか?
#!/bin/sh
tail -f ./a.txt
echo "I want to print this line after tailing"
次のようなことを試すことができます:
#!/bin/sh
trap ctrl_c INT
function ctrl_c() {
echo "You slay me!"
}
tail -f ./a.txt
echo "I want to print this line after tailing"
tail -f
が完了した後、または後でデフォルトの Ctrl-C の動作に戻したい時点で、次のようにします。
trap - INT
または、新しいトラップ関数を宣言して、割り込みを「カスタマイズ」することもできます。
#!/bin/sh
trap ctrl_c INT
function ctrl_c() {
echo "You slay me!"
}
function my_default_ctrl_c() {
echo "You just interrupted me!"
exit 1
}
tail -f ./a.txt
echo "I want to print this line after tailing"
trap my_default_ctrl_c INT
ここで、キーボードから続けて Ctrl-C を押すと、スクリプトが中断され、"You just interrupted me!" というカスタム メッセージが表示されます。