【问题标题】:How to use tail -f without finish shell script?如何在没有完成 shell 脚本的情况下使用 tail -f?
【发布时间】:2013-11-01 01:32:30
【问题描述】:

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

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

【问题讨论】:

  • 这不是一个编程问题——它属于 superuser.com
  • @GeorgeJempty SO 会定期回答 shell 编程问题。 Superuser.com 会偏向于系统管理和操作问题等。尽管有时可能会有一条细线。

标签: bash tail


【解决方案1】:

你可以试试这样的:

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

【讨论】:

  • +1 您可能还想在tail 命令之后添加trap - INT 以恢复默认的INT 处理程序。
猜你喜欢
  • 2013-03-16
  • 2011-01-03
  • 2017-04-03
  • 1970-01-01
  • 2012-06-05
  • 1970-01-01
  • 2014-10-24
  • 2021-02-19
  • 2013-03-06
相关资源
最近更新 更多