我有一个程序在运行时将其输出记录到* .out文件。我设置了一个bash脚本来运行几个不同的时间,所以每次运行都写入一个不同的* .out文件。我发现我可以tail
最新的* .out文件是这样的:尾巴最近的文件
watch tail $(ls -tr *.out | tail -n1)
这个问题似乎是在引用$()
只被执行一次。所以当第一次运行结束时,watch
继续到tail
相同的* .out文件,即使现在有一个更新的* .out文件。
如何在一次运行完成后将其更改为转到下一个* .out文件?
我试着做一些嵌套的引号和括号,但我不太了解引用的细节。 watch
将命令传递给sh
,尽管我使用的是bash,但事情很复杂。
奖励积分:如果可以修改为tail -f
而不是仅仅重复watch
每n
秒,那就太好了。
嗯..我真的不明白的用例。你想实时阅读几个文件吗?如果是的话,使用'tail -f * .out'更容易 – pivanchy
我一般同意@pivanchy,但值得一提的是,POSIX'tail'不保证一次处理多个文件。 – kojiro
@pivanchy是解决方案。我没有意识到这很简单。 –