Bash
如何將 watch 命令與命令/程序的管道鏈一起使用
我通常使用Linux 實用程序每隔幾秒
watch
重複一次查看命令的輸出,例如在.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)
我在給定的時間間隔內看到輸出沒有變化,因為裡面的命令
$()
只執行一次,並且生成的輸出字元串總是作為文字列印(“watched”)。那麼,如何使
watch
命令與管道命令鏈一起工作$$ other that putting them inside a script $$?
watch 'command | othertool | yet-another-tool'
watch -n 1 "ls -lrt | tail -n20; date"
讓你連續執行。