¿Cuándo es apropiado usar color en una aplicación de línea de comandos?

14

Actualmente tengo una aplicación de línea de comandos en C llamada btcwatch . Tiene una opción -C que puede recibir como un argumento que compara el precio actual de Bitcoin con un precio que se almacenó de antemano con -S . Ejemplo de salida 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 usar 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 que btcwatch se vea y sea bastante "estándar" (uso de getopt , Makefiles, etc.), no estoy seguro de que el color se vea fuera de lugar en esta situación.

    
pregunta Marco Scannadinari 01.11.2013 - 19:39
fuente

3 respuestas

21

Lo apropiado es hacer que la coloración sea opcional, predeterminada a "off" y controlarla mediante un indicador de línea de comando. De esa manera, las personas a las que no les gusta o cuyo terminal no lo admite no se ven afectadas, las personas a quienes les gusta pueden usarlo, y las personas que realmente les gusta pueden definir un alias o acceso directo para predefinir la opción. Todo el mundo está feliz.

    
respondido por el Kilian Foth 01.11.2013 - 19:43
fuente
9

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 de "etiqueta: valor" y desea que las etiquetas (o valores) se destaquen.

  • Hay elementos que se beneficiarían si se muestran en rojo / verde, por ejemplo. detener / ir, bueno / malo, etc.

  • La mayoría de la información es de fondo, pero un elemento clave debe sobresalir.

respondido por el Michael Durrant 01.11.2013 - 22:35
fuente
5

Otro factor importante a considerar es que la coloración, según la plataforma, puede agregar secuencias de escape de caracteres. Para las compilaciones en esas plataformas, si el modo actual / predeterminado es dar salida al color, es habitual detectar si la salida del programa es un PIPE y eliminar el color si ese es el caso.

Esto es para que las secuencias de escape de color no se deshagan de los programas posteriores que leen su salida.

    
respondido por el Preet Kukreti 02.11.2013 - 04:32
fuente

Lea otras preguntas en las etiquetas