我正在尝试在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而不是日志。任何想法我可能做错了
答案 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。