De man watch:
Los caracteres que no se imprimen se eliminan de la salida del programa. Use "cat -v" como parte de la canalización de comandos si desea verlos.
Entonces, ¿cómo lo uso cat -vsi quiero ver la salida en color de:
watch ls -al --color
El comando correcto es
watch --color "ls -a1 --color"
No está documentado en la página de manual o en la pantalla de ayuda. Tengo que usar cadenas para encontrarlo.
watch --color "sudo iwlist wlan0 scanning | egrep 'Quality|ESSID' | egrep --color -i 'foobar|$'"comerán los colores :(watchde procps (el valor por defecto en la mayoría de distribuciones de Linux, creo) tiene una--coloropción ya V3.3.2.Creo que puede no ser posible con el comando 'watch'. Aquí hay una forma más larga de hacerlo:
Podría poner esto en un script, por ejemplo:
Para aclarar, he aquí por qué creo que no es posible con el comando 'watch'. Vea lo que sucede si usa cat -v:
Te muestra los caracteres de control de color ... que creo que no es lo que quieres.
fuente
man watchsugiere claramente que debería ser posible sin disimularwatch.cat -vpara ver de quéman watchestaba hablando.while true; do out=$(date;echo;ls -al --color);clear;echo $out;sleep 2;doneecho "$out". stackoverflow.com/q/2414150/86967Si está utilizando una Mac, como yo,
watchde Homebrew no es compatible con el color.Lo que quieres es fswatch pero aún no es Homebrew. Para instalarlo, querrás hacer un poco más complicado
https://raw.github.com/mlevin2/homebrew/116b43eaef08d89054c2f43579113b37b4a2abd3/Library/Formula/fswatch.rbVea esta respuesta SO para su uso.
fuente
watchaplica a un comandoACTUALIZACIÓN : Resulta las últimas versiones de
watchsolucionado el problema. Entonces, si los coloreswatch --colorson incorrectos, probablemente sea mejor simplemente actualizarlo (en mi sistema, está en elprocpspaquete).El soporte de color
watch --colores limitado en mi experiencia (aunque suficiente parals -l --color). Aquí está mi versión de la respuesta de @ davr con algunas características adicionales, el parpadeo más importante reducido. Puede ponerlo en su .bashrc y usarlo comocwatch ls -l --color.También puedes probar cosas como
si su terminal tiene menos líneas que la salida. Sin embargo, eso solo funciona si todas las líneas son más cortas que el ancho del terminal. La mejor solución que conozco para eso es:
fuente