terminal – ¿Hay alguna página de manual para la salida de shell en color?

Pregunta:

Ya sabes, esa salida coloreada hecha 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 debe haber algunos manuales, pero no pude encontrarlos. Incluso con un apropos color o algo similar. Entonces, la pregunta es: ¿dónde puedo encontrar manuales confiables?

Respuesta:

Hay demasiadas fuentes de información para enumerarlas en esta página:

  • El comando echo -e usa una extensión para representar \e como ASCII 27 (octal 33 o "\ 033"). La forma portátil de imprimir estos utiliza printf (POSIX). Compare con echo estándar (POSIX).
  • Tu ejemplo se puede reescribir como

    printf "\033[34m Hello\n \033[0m"

  • el estándar para los escapes de color es ECMA-48 (Funciones de control para juegos de caracteres codificados).
  • En ECMA-48, 8.3.117 SGR – SELECT GRAPHIC RENDITION enumera las 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 por defecto (definido por la implementación)" y 38/48 "reservados para normalización futura; destinados a establecer el color de primer plano de los caracteres como se especifica en la norma ISO 8613-6 [Recomendación T.416 del CCITT]". Es decir, hay una recomendación de otra organización pero no se ha incluido (hasta ahora, después de 24 años) en la norma.
  • leyéndolo con atención, puede notar que el estándar es vago en muchos lugares, lo que permite diferentes interpretaciones. Describe la sintaxis de estas secuencias de control pero no describe su comportamiento . Para eso, debes acudir a la documentación de los respectivos terminales.
  • La documentación para xterm se encuentra en XTerm Control Sequences , que asume una familiaridad con la documentación de DEC que se encuentra en http://vt100.net
  • para otros terminales, sus páginas de manual pueden enumerar los controles (como se hizo para la consola de Linux en console_codes ).
  • otros terminales se documentan como "xterm"; para más información, consulte las preguntas frecuentes de xterm. Comparación de versiones, contando los controles . Afortunadamente, los controles de color son en su mayoría compatibles (pero vea las Preguntas frecuentes de ncurses Mi terminal muestra algunos espacios sin color ).
  • también puede leer las páginas del manual de tput , que le permite utilizar las capacidades de terminfo en un script de shell. Tu ejemplo podría reescribirse como

     printf '%s\n' "$(tput setaf 4)Hello$(tput setaf 0)"
  • algunas fuentes como Bash Prompt HOWTO y Advanced Bash-Scripting Guide mencionan el color, pero (incluso estas) 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á con una copia de búsqueda en la web de otras fuentes (como las citadas), etc., y como regla, prestan poca atención al estándar real.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım