如何使用脚本对多个文件进行tail -f?

时间:2014-04-16 16:01:54

标签: unix ksh

我正在尝试在ksh中拖尾多个文件。我有以下脚本:

test.sh

#!/bin/ksh

for file in "$@"
do
        # show tails of each in background.
        tail -f $file>out.txt
        echo "\n"
done

它只读取我提供给脚本的第一个文件参数。不读取其他文件作为脚本的参数。

当我这样做时:

./test.sh /var/adm/messages /var/adm/logs

它只读取/ var / adm / messages而不是日志。任何想法我可能做错了

1 个答案:

答案 0 :(得分:2)

你应该使用双“>>”语法在输出文件的末尾重定向流。 一个简单的“>”重定向将在文件的开头写入流,因此它将删除以前的内容。

所以试试:

#!/bin/ksh

for file in "$@"
do
        # show tails of each in background.
        tail -f $file >> out.txt & # Don't forget to add the last character
done

编辑:如果你想使用多尾,它默认没有安装。在Debian或Ubuntu上,你可以使用apt-get install multi tail。