top of page

Agrégale color a tus prints

Muchas veces cuando programamos en la etapa temprana de un proyecto, la salida principal a la que acudimos para hacer un debug es la consola, terminal o como lo llames, generalmente desde el típico hola mundo, hasta mensajes de error que hacen parte de un log, sin embargo todos estos mensajes aparecen con el mismo color por defecto de nuestra terminal, qué tal si quisiéramos imprimir mensajes de advertencia y mensajes de error con distintos colores con el fin de poder identificarlos rápidamente en pantalla o simplemente para facilitarle la vida un poco a nuestros usuarios, entonces has llegado al post correcto.


¿Sabías que los colores en la terminal no es más que una simple letra?, pues es así, esta vez te daré las claves para interpretar los colores y que puedas cambiar los colores a tu antojo.


Así como en lenguajes de bajo nivel se reservan ciertos #caracteresEspeciales para realizar operaciones en lenguaje de maquina como la asignación de variables, sumar o restar un valor, concatenar entre otros, también hay caracteres especiales para colorear los textos, la mayoría de lenguajes usan el estándar ANSI-C porque la mayoría de los lenguajes nuevos nacen del lenguaje C, incluso las terminales de comandos, sistemas operativos completos están escritos en el fondo con lenguaje C.


La mayoría de terminales heredan algunos comandos del lenguaje C como `printf` que sirve para imprimir en pantalla un texto que queramos escribir


Como vemos imprime un valor detrás del usuario, distinto del comando `echo` que escribe el mensaje delante del usuario.


Como mi terminal tiene un tema voy a entrar como super usuario ya que lo que voy a hacer no tendría el efecto deseado para los cambios de color que pienso hacer.


Lo que haremos es imprimir un caracter de escape con printf.

printf '\e[31m' # Imprime el color rojo

Repasando un poco, un caracter de escape es un simbolo especial que usamos para que el intérprete o el compilador omita cierto caracter, generalmente otros simbolos '\' como parte del lenguaje de programación y lo incluya como un texto plano, como la mayoría de lenguajes usan caracteres como comillas, corchetes, llaves, paréntesis, saltos de línea, saltos de tabulador, distintas clases de espacios.

también existen caracteres especiales como es el caso de este `\e` que solo es soportado en la terminal Bash, que a su vez es un resumen del caractér `\033` de ANSI-C en digito octal 33 o a si vez es `\x1b` digito hexadecimal 1b.



Código de colores

La siguiente tabla muestra el código de colores que puede usar en la terminal, también es posible combinar varias características separando los valores por ';' siempre y cuando no entre en contradicción.


printf '\e[1;5;7;33;41m' # negrilla;parpadeo;inverso;naranja;bg rojo

Color / Característica

Frente

Fondo

normal

\e[0m

​

negrilla

\e[1m

​

cursiva

\e[3m #no soportado en otras sh

​

subrayado

\e[4m

​

parpadeo

\e[5m

​

reverso

\e[7m

​

oculto

\e[8m

​

negro

\e[30m

\e[40m

rojo

\e[31m

\e[41m

verde

\e[32m

\e[42m

naranja

\e[33m

\e[43m

azul

\e[34m

\e[44m

magenta

\e[35m

\e[45m

cyan

\e[36m

\e[46m

gris claro

\e[37m

\e[47m

por defecto

\e[39m

\e[49m

gris oscuro

\e[90m

\e[100m

rosa

\e[91m

\e[101m

verde claro

\e[92m

\e[102m

amarillo

\e[93m

\e[103m

azul claro

\e[94m

\e[104m

purpura claro

\e[95m

\e[105m

verde azulado o teal

\e[96m

\e[106m

blanco

\e[97m

\e[107m

También es posible usar estos códigos de color en otros lenguajes, en #Python podemos usar el carácter de escape '\x1b[<id-color>' para lo mismo.


Este es un post cortico, pero me pareció curioso y útil para compartir, espero que este truco les sea de ayuda en sus propios proyectos. Nos vemos en un próximo post.

47 visualizaciones0 comentarios

Entradas Recientes

Ver todo
bottom of page