J'utilise habituellement l' watch
utilitaire linux pour regarder la sortie d'une commande plusieurs fois toutes les n secondes, comme danswatch df -h /some_volume/
Mais il semble que je ne sois pas capable d’utiliser watch
une série de commandes comme:
$ watch ls -ltr|tail -n 1
Si je le fais, watch
regarde vraiment ls -ltr
et la sortie est passée à tail -n 1
qui ne sort rien.
Si j'essaye ceci:
$ watch (ls -ltr|tail -n 1)
Je reçois
$ watch: syntax error near unexpected token `ls'
Et l’un des problèmes suivants échoue pour une raison ou une autre:
$ watch <(ls -ltr|tail -n 1)
$ watch < <(ls -ltr|tail -n 1)
$ watch $(ls -ltr|tail -n 1)
$ watch `ls -ltr|tail -n 1)`
Et enfin si fais ceci:
$ watch echo $(ls -ltr|tail -n 1)
Je ne vois aucun changement dans la sortie à l'intervalle donné, car la commande à l'intérieur $()
est exécutée une seule fois et la chaîne de sortie résultante est toujours imprimée ("surveillée") en tant que littéral.
Alors, comment puis-je faire en sorte que la watch
commande fonctionne avec une chaîne de commandes canalisée [autre que de les insérer dans un script]?
man watch
et faire défiler vers le bas pour des exemples ...