Di solito utilizzo l' watchutility linux per guardare l'output di un comando ripetutamente ogni n secondi, come inwatch df -h /some_volume/
Ma non riesco a usarlo watchcon una serie di comandi convogliati come:
$ watch ls -ltr|tail -n 1
Se lo faccio, watchsta davvero guardando ls -ltre viene trasmesso l'output a tail -n 1cui non viene emesso nulla.
Se provo questo:
$ watch (ls -ltr|tail -n 1)
ottengo
$ watch: syntax error near unexpected token `ls'
E una delle seguenti ragioni fallisce in qualche modo:
$ watch <(ls -ltr|tail -n 1)
$ watch < <(ls -ltr|tail -n 1)
$ watch $(ls -ltr|tail -n 1)
$ watch `ls -ltr|tail -n 1)`
E infine se lo fai:
$ watch echo $(ls -ltr|tail -n 1)
Non vedo alcun cambiamento nell'output all'intervallo dato perché il comando all'interno $()viene eseguito solo una volta e la stringa di output risultante viene sempre stampata ("guardata") come un valore letterale.
Quindi, come faccio a far funzionare il watchcomando con una catena di comandi convogliata [altro che inserirli in uno script]?
man watche scorri verso il basso fino agli esempi ...