Cambiando el color de la salida estándar en la consola

Muchas veces al ejecutar un comando se muestra un color en el terminal para un texto. Muchos terminales reconocen secuencias de texto y las interpretan, por ejemplo, si en un terminal se escribe:

printf "\033[1;32m Texto en negrita y verde \033[0m Texto normal\n"

Se mostrará un texto en negrita y de color verde, seguido de un texto normal.

Nota: Según el tema del terminal, los colores pueden aparecer cambiados. Si el terminal no interpreta los colores, aparecerá la secuencia de caracteres introducida.

Como se puede ver, el terminal interpreta la secuencia “\033[…m” como un comando. Así el 0 representa resetear a los valores iniciales.

\033[0m

¿Qué valores pueden interesar?

Par a los colores:

       texto           fondo
negro    30		40
rojo	 31		41
verde	 32		42
amarillo 33		43
azul	 34		44
magenta	 35		45
cian	 36		46
blanco	 37		47

A parte de los colores se poseen los siguientes atributos:

	0 Resetear
	1 Negrita
	4 Subrayado
	7 Inverso (intercambia los colores del texto y el fondo)
	21 Desactivar negrita
	24 Desactivar Subrayado
	27 Desactivar inverso

Los diversos valores se pueden separar por un “;”. Así, para poner el texto rojo y subrayado:

\033[4;31m

Un ejemplo:

printf "\033[4;32m Texto en verde \033[0m Texto normal\n"

Hay terminales que admiten 256 colores, para este caso se usará la secuencia para el texto:

\033[38:5:#color#m

y para el fondo:

\033[48:5:#color#m

donde #color# es un número entre 0 y 255:

Por ejemplo: \033[38:5:100m

Así para tener un fondo verde oscuro sobre un texto en verde claro:

printf "\033[1;48:5:100;38:5:10m Texto en verde \033[0m Texto normal\n"

Incluso se pueden manejar colores en RGB. Más información en:

https://en.m.wikipedia.org/wiki/ANSI_escape_code

En este enlace se pueden incluso como usar una sintaxis RGB.

Espero que os sea útil

Esta entrada fue publicada en Software. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s