有没有办法让 tail -F 发出蜂鸣声?

有没有办法让 tail -F 发出蜂鸣声?

当新数据进入(新行添加到文件中)时,有没有办法发出tail -F或发出蜂鸣声(在终端中按响铃)。less或者是否有任何其他 UNIX 实用程序可以在 Linux 或 Mac 上执行此操作。

答案1

一个想法可能是通过管道输出tailthroughsed并用 bell/newline 替换换行符。

tail但如果您在一个范围内使用,可能有一个更简单的解决方案X-窗口。当窗口内容发生变化(闪烁、响铃等)时,您可以执行操作。

答案2

如果您使用 GNU screen,您可以将其设置为“监视”带有尾部的窗口,它会在状态栏中或通过 termcap 定义的铃声提醒您该窗口中有新的输出。

http://www.gnu.org/software/screen/manual/html%5Fnode/Monitor.html#Monitor


编辑:只需要添加这个,因为你提到了 mac os x

只是为了好玩,如果您正在寻找特定的内容,您可以使用 Mac OS X 的say命令来读取您正在观看的文件。只需从以下位置获取logtail命令:

http://www.hmug.org/pub/MacOS_X/BSD/Administration/Log/logcheck/

并在如下脚本中使用它:

#!/bin/bash

file=$1
offset=$(basename "$1")

# while true... let this thing run until it's killed...
while true; do
    output=$(/usr/local/bin/logtail $file .${offset}.offset)
    if [ ! -z "$output" ]; then

        # print the output and say ding
        echo "$output" && say ding
        # to have the file read aloud to you, uncomment the following:
        say "$output"

        fi
    # recheck every 5 seconds
    sleep 5
done

答案3

你可以使用多尾。它是一个增强型tail 支持正则表达式匹配的命令执行。

例如,以下命令每次播放声音并打开一个 xmessage 窗口火星来源数据包已记录。

multitail -ex "martian source" "play beep.wav; xmessage " -i /var/log/messages

答案4

对于找到此页面的其他人,我正在使用 tcsh,这似乎有效:

tail -f changingfile | sed -e 's/.*/& \a/'

不要问我 sed 语法是什么意思......

相关内容