如何將 watch 指令與管道指令/程式鏈一起使用

如何將 watch 指令與管道指令/程式鏈一起使用

我通常使用watchLinux 實用程式每秒重複查看命令的輸出n,例如watch df -h /some_volume/.

但我似乎無法使用watch一系列管道命令,例如:

$ watch ls -ltr|tail -n 1

如果我這樣做,watch就會真正地觀察ls -ltr並且輸出被傳遞到tail -n 1不輸出任何內容的地方。

如果我嘗試這個:

$ watch (ls -ltr|tail -n 1)

我明白了

$ watch: syntax error near unexpected token `ls'

並且以下任何一項因某種原因失敗:

$ watch <(ls -ltr|tail -n 1)

$ watch < <(ls -ltr|tail -n 1)

$ watch $(ls -ltr|tail -n 1)

$ watch `ls -ltr|tail -n 1)`

最後如果這樣做:

$ watch echo $(ls -ltr|tail -n 1)

我在給定的時間間隔內看到輸出沒有變化,因為內部命令$()僅運行一次,並且生成的輸出字串始終作為文字列印(“監視”)。

那麼,如何使該watch命令與管道命令鏈一起使用[其他將它們放入腳本中]?

答案1

watch 'command | othertool | yet-another-tool'

答案2

watch -n 1 "ls -lrt | tail -n20; date"

讓你連續管道和運行。

答案3

'使用單引號 ( ) 和雙引號 ( )的組合"。例如:

watch -n 1 "links -dump 127.0.0.1/server-status | grep -e '\S' -Fe 'www.'"

答案4

假設您運行一個命令然後想要觀看它;使用:

ls -lrt | tail -n20; date
watch "!!"

相關內容