J'utilise habituellement l' watchutilitaire 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 watchune série de commandes comme:
$ watch ls -ltr|tail -n 1
Si je le fais, watchregarde vraiment ls -ltret la sortie est passée à tail -n 1qui 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 watchcommande fonctionne avec une chaîne de commandes canalisée [autre que de les insérer dans un script]?
man watchet faire défiler vers le bas pour des exemples ...