如何在没有完成shell脚本的情况下使用tail -f?

时间:2013-11-01 01:32:30

标签: bash tail

我想使用tail命令来观看并继续我的脚本。 当我按“Ctrl + C”键时,我不想停止整个脚本。 有什么好方法吗?

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

1 个答案:

答案 0 :(得分: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将中断脚本并发出自定义消息,“你刚打扰我!”。