Actualmente tengo una aplicación de línea de comandos en C llamada btcwatch
. Tiene una -C
opción que puede recibir como argumento que compara el precio actual de Bitcoin con un precio almacenado de antemano -S
. El resultado de ejemplo con esta opción es:
$ btcwatch -vC # -v = verbose
buy: UP $ 32.000000 USD (100.000000 -> 132.000000)
sell: UP $ 16.000000 USD (100.000000 -> 116.000000)
El dilema es si se debe usar el color para la cadena UP
o DOWN
(verde y rojo, respectivamente). La mayoría de las aplicaciones de línea de comandos que conozco (aparte de git) se mantienen alejadas del color en su salida. En mi deseo de btcwatch
mirar y ser bastante "estándar" (uso de getopt
Makefiles, etc.), no estoy seguro de si el color se vería fuera de lugar en esta situación.
coding-standards
command-line
bash
color
Marco Scannadinari
fuente
fuente
git diff
,git pull
, etc.Respuestas:
Lo apropiado es hacer que el color sea opcional, predeterminado en "apagado" y controlarlo mediante un indicador de línea de comandos. De esa manera, las personas a las que no les gusta o cuyo terminal no lo admite no se ven afectadas, las personas que les gusta pueden usarlo y las personas que realmente les gusta pueden definir un alias o acceso directo para predefinir la opción. Todos están felices.
fuente
ls
(ls --color
se requiere la opción para activarla).--color
./bin/ls
es simple,/bin/ls -G
está coloreado (aunque si tiene CLICOLOR definido en el entorno, esa opción actúa de manera predeterminada). En las distribuciones influenciadas por GNU , uno ve--color
y sus variables de entorno asociadas.alias ls='ls --color=auto'
viene por defecto.bashrc
(o si ya no lo hace, lo hizo alrededor de 8.04 más o menos un año, y acabo de llevar mi .bashrc a través de las instalaciones)Consideraría apropiado usar color cuando:
Hay "grupos" de elementos y los grupos de colores ayudarán a agrupar visualmente los elementos.
Hay conjuntos de campos 'etiqueta: valor' y desea que las etiquetas (o valores) se destaquen.
Hay elementos que se beneficiarían de mostrarse en rojo / verde, por ejemplo, detener / avanzar, bueno / malo, etc.
La mayor parte de la información es de fondo, pero un elemento clave debe destacarse.
fuente
Otro factor importante a considerar es que la coloración, dependiendo de la plataforma, puede agregar secuencias de escape de caracteres. Para compilaciones en esas plataformas, si el modo actual / predeterminado es generar color, es habitual detectar si la salida del programa es un TUBO y eliminar el color si ese es el caso.
Esto es para que las secuencias de escape de color no arrojen programas posteriores que leen su salida.
fuente
--colour
(o--no-colour
) opción será más amigable con dichos programas