I usually user watch linux utility to watch the output of a command repeatedly every n seconds, like in watch df -h /some_volume/But I seem not to be able to use watch with a piped series of command like:$ watch ls -ltr|tail -n 1If I do that, watch is really watching ls -ltr and the output is being passed to tail -n 1 which doesn't output anything.If I try this:$ watch (ls -ltr|tail -n 1)I get$ watch: syntax error near unexpected token `ls'And any of the following fails some reason or another:$ watch <(ls -ltr|tail -n 1)$ watch < <(ls -ltr|tail -n 1)$ watch $(ls -ltr|tail -n 1)$ watch `ls -ltr|tail -n 1)`And finally if do this:$ watch echo $(ls -ltr|tail -n 1)I see no change in the output at the given interval because the command inside $() is run just once and the resulting output string is always printed (watched) as a literal.So, how do I make the watch command work with a piped chain of commands [other that putting them inside a script]?
How to use watch command with a piped chain of commands/programs
linux;bash;pipe;watch
watch 'command | othertool | yet-another-tool'