Di solito utilizzo l' watch
utility linux per guardare l'output di un comando ripetutamente ogni n secondi, come inwatch df -h /some_volume/
Ma non riesco a usarlo watch
con una serie di comandi convogliati come:
$ watch ls -ltr|tail -n 1
Se lo faccio, watch
sta davvero guardando ls -ltr
e viene trasmesso l'output a tail -n 1
cui 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 watch
comando con una catena di comandi convogliata [altro che inserirli in uno script]?
man watch
e scorri verso il basso fino agli esempi ...