我通常使用watch
linux实用程序每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
命令与管道的一系列命令一起工作(将它们放入脚本中除外)?
man watch
并向下滚动至示例...