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 将中断脚本并给出自定义消息,“你刚刚打断了我!”。

于 2013-11-01T01:39:55.800 回答