我的程序以文本文件而不是stdout作为输出。它不断向文件添加新行。每次我想要附加最新的内容行,我都可以拖尾文件。但是现在我想要在我的终端上同时显示附加的内容,好像我的程序将stdout作为输出。
我发现了一个丑陋的解决方案:通过在五秒前备份文本文件的内容,每隔五秒打印一个新的附加内容,然后用它来区分当前内容,如下:
#!/bin/sh
# show the appended text of a file every 5 seconds
echo `pwd`;
while true
do
cp $1 $1.earlier;
sleep 5;
echo `date`;
diff $1 $1.earlier;
done
答案 0 :(得分:1)
我认为你想要的是:
$ tail -f file
来自man tail
:
-f, --follow[={name|descriptor}]
output appended data as the file grows; -f, --follow, and --follow=descriptor
are equivalent
答案 1 :(得分:0)
如果您想要的不仅仅是最后几行输出以及以下内容,您可以调用:
less +F $file
(或在查看Shift-F
中的文件时按less
。
在少量关注文件时,按Ctrl-C
停止关注,但保持文件处于打开状态,然后Shift-F
再次关注。