我有一個程序在運行時將其輸出記錄到* .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是解決方案。我沒有意識到這很簡單。 –