De man watch
:
Les caractères non imprimables sont supprimés de la sortie du programme. Utilisez "cat -v" dans le cadre du pipeline de commandes si vous souhaitez les voir.
Alors, comment puis-je utiliser cat -v
si je veux voir la sortie colorée de:
watch ls -al --color
watch --color "sudo iwlist wlan0 scanning | egrep 'Quality|ESSID' | egrep --color -i 'foobar|$'"
mangera les couleurs :(watch
from procps (le défaut sur la plupart des distributions Linux, je crois) a une--color
option depuis la V3.3.2.Je pense que cela peut ne pas être possible avec la commande 'watch'. Voici un moyen plus long de le faire:
Vous pouvez mettre ceci dans un script, par exemple:
Pour clarifier, voici pourquoi je pense que ce n'est pas possible avec la commande 'watch'. Voyez ce qui se passe si vous utilisez cat -v:
Il vous montre les caractères de contrôle de la couleur ... ce qui, à mon avis, n’est pas ce que vous voulez.
la source
man watch
suggère clairement que cela devrait être possible sans dissingwatch
.cat -v
pour voir ce quiman watch
était en train de parler.while true; do out=$(date;echo;ls -al --color);clear;echo $out;sleep 2;done
echo "$out"
. stackoverflow.com/q/2414150/86967Si vous utilisez un Mac, comme moi,
watch
Homebrew ne prend pas en charge la couleur.Ce que vous voulez, c'est fswatch, mais ce n’est pas encore Homebrew. Pour l'installer, vous aurez envie de faire le légèrement plus compliqué
https://raw.github.com/mlevin2/homebrew/116b43eaef08d89054c2f43579113b37b4a2abd3/Library/Formula/fswatch.rb
Voir cette réponse SO pour l'utilisation.
la source
watch
s'applique à une commandeUPDATE : Les dernières versions de
watch
résolu le problème. Donc, si les couleurs dewatch --color
sont fausses, il vaut probablement mieux simplement les mettre à jour (sur mon système, elles sont dans leprocps
paquet).La prise en charge de la couleur
watch --color
est limitée dans mon expérience (bien que suffisante pourls -l --color
). Voici ma version de la réponse de @ davr avec quelques fonctionnalités supplémentaires, le plus important étant la réduction du scintillement. Vous pouvez le mettre dans votre .bashrc et l'utiliser commecwatch ls -l --color
.Vous pouvez aussi essayer des choses comme
si votre terminal a moins de lignes que la sortie. Cela ne fonctionne que si toutes les lignes sont plus courtes que la largeur du terminal. La meilleure solution que je connaisse pour cela est la suivante:
la source