Usualmente watch
utilizo la utilidad Linux para ver la salida de un comando repetidamente cada n segundos, como enwatch df -h /some_volume/
Pero parece que no puedo usar watch
una serie de comandos canalizados como:
$ watch ls -ltr|tail -n 1
Si hago eso, watch
realmente está mirando ls -ltr
y la salida se está pasando a la tail -n 1
que no sale nada.
Si intento esto:
$ watch (ls -ltr|tail -n 1)
yo obtengo
$ watch: syntax error near unexpected token `ls'
Y cualquiera de los siguientes falla alguna razón u otra:
$ watch <(ls -ltr|tail -n 1)
$ watch < <(ls -ltr|tail -n 1)
$ watch $(ls -ltr|tail -n 1)
$ watch `ls -ltr|tail -n 1)`
Y finalmente si haces esto:
$ watch echo $(ls -ltr|tail -n 1)
No veo ningún cambio en la salida en el intervalo dado porque el comando dentro $()
se ejecuta solo una vez y la cadena de salida resultante siempre se imprime ("vigilada") como literal.
Entonces, ¿cómo hago que el watch
comando funcione con una cadena de comandos canalizada [aparte de ponerlos dentro de un script]?
man watch
y desplázate hacia abajo para ver ejemplos ...