
Ya sabes, esa salida coloreada creada por secuencias de caracteres especiales, por ejemplo:
echo -e "\e[34m Hello\n \e[0m"
Esto producirá la palabra "Hola" coloreada en azul. Para hacer esto tuve que buscar en la web, y es difícil, porque diferentes fuentes pueden decir algo diferente. Pensé que debía haber algunos manuales, pero no pude encontrarlos. Incluso con apropos color
o algo similar. Entonces, la pregunta es: ¿dónde puedo encontrar manuales confiables?
Respuesta1
Hay demasiadas fuentes de información para enumerarlas en esta página:
- El comando
echo -e
utiliza unextensiónpara representar\e
como ASCII 27 (octal 33 o "\033"). La forma portátil de imprimir estos usosprintf
(POSIX). Comparar con el estándarecho
(POSIX). Su ejemplo se puede reescribir como
printf "\033[34m Hello\n \033[0m"
- el estándar para los escapes de color esECMA-48(Funciones de control para juegos de caracteres codificados).
- En ECMA-48, 8.3.117 SGR - SELECCIONAR RENDICIÓN GRÁFICA enumera secuencias de control para configurar 8 colores de primer plano y 8 de fondo.
- También enumera los códigos 39/49 "color de visualización predeterminado (definido por la implementación)" y 38/48 "reservados para una futura estandarización; destinados a establecer el color de primer plano de los caracteres como se especifica en ISO 8613-6 [Recomendación CCITT T.416]". Es decir, existe una recomendación de otra organización pero (hasta ahora, después de 24 años) no se ha incluido en el estándar.
- Al leerlo atentamente, podrá notar que el estándar es vago en muchos lugares, lo que permite diferentes interpretaciones. Describe elsintaxisde estas secuencias de control pero no describe sucomportamiento. Para eso hay que acudir a la documentación de los respectivos terminales.
- La documentación para xterm se encuentra enSecuencias de control XTerm, que supone estar familiarizado con la documentación de DEC que se encuentra enhttp://vt100.net
- para otros terminales, sus páginas de manual pueden enumerar los controles (como se hace para la consola Linux encódigos_consola).
- otros terminales se documentan como "xterm"; para discusión consulte las preguntas frecuentes de xtermComparación de versiones, contando controles.. Afortunadamente, los controles de color sonprincipalmentecompatible (pero consulte las preguntas frecuentes sobre ncurses)Mi terminal muestra algunos espacios sin color.).
También puede leer las páginas del manual para
tput
, que le permite utilizarterminfo
capacidades en un script de shell. Su ejemplo podría reescribirse comoprintf '%s\n' "$(tput setaf 4)Hello$(tput setaf 0)"
algunas fuentes como laCómo solicitar Bashy elGuía avanzada de secuencias de comandos Bashmencionan el color, pero (incluso estos) por regla general tienen lagunas y omisiones y no son útiles con respecto a ECMA-48.
- la mayoría de las otras fuentes que encontrará en una copia de búsqueda web de otras fuentes (como las citadas), etc., y como regla general prestan poca atención al estándar real.