4

tail コマンドを使用して、スクリプトを監視して続行したいと考えています。「Ctrl+C」キーを押したときにスクリプト全体を停止したくありません。何か良い方法はありますか?

#!/bin/sh
tail -f ./a.txt
echo "I want to print this line after tailing"
4

1 に答える 1

4

次のようなことを試すことができます:

#!/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!" というカスタム メッセージが表示されます。

于 2013-11-01T01:39:55.800 に答える