En esta entrada voy a tratar de explicar como funciona el cambio de colores de la consola, usando secuencias de escape, siendo válidos para la consola de GNU/Linux, ya sea desde bash, como desde el ANSI C.
Recordemos que las secuencias de escape se ejecutan en la consola por medio directo en una consola GNU/Linux, y desde una sentencia de salida como el printf(), desde el ANSI C.
La secuencia de escape se indica con \033. Este número está expresado en octal y es el número 27 en decimal (Esc).
Luego se escribe el corchete abierto [ para indicar que se inicia la secuencia de caracteres no imprimibles.
A continuación se indican los valores para el
Separado por un ; se agregan dos dígitos para el color de Fondo o de Texto de manera indistinta
Y se repite un número de dos dígitos para el color de Fondo o Texto.
Recordemos que las secuencias de escape se ejecutan en la consola por medio directo en una consola GNU/Linux, y desde una sentencia de salida como el printf(), desde el ANSI C.
La secuencia de escape se indica con \033. Este número está expresado en octal y es el número 27 en decimal (Esc).
Luego se escribe el corchete abierto [ para indicar que se inicia la secuencia de caracteres no imprimibles.
A continuación se indican los valores para el
Separado por un ; se agregan dos dígitos para el color de Fondo o de Texto de manera indistinta
Y se repite un número de dos dígitos para el color de Fondo o Texto.
Esto es posible hacerlo, dado que los valores de los colores para el fondo, se obtienen sumando diez al los colores del texto.
La secuencia de escape para cambiar el color quedaría de la siguiente manera:
"\033[#;##;## m"
(debo reconocer que no se para que está la "m")
Los estilos que podemos seleccionar son los siguientes:
0 - Normal
1 - Claro (el color se diluye, permite hacer dos tonos de cada color: azul/azulclaro, rojo/rojoclaro...)
4 - Subrayado
5 - Parpadeante (solo funciona para bash)
7 - Inverso
8 - Oculto (Pensado para pedir contraseñas al usuario)
La secuencia de escape para cambiar el color quedaría de la siguiente manera:
"\033[#;##
(debo reconocer que no se para que está la "m")
Los estilos que podemos seleccionar son los siguientes:
0 - Normal
4 - Subrayado
5 - Parpadeante (solo funciona para bash)
7 - Inverso
8 - Oculto (Pensado para pedir contraseñas al usuario)
Los colores para texto son los siguientes:
Negro 0;30 Gris Obscuro 1;30
Azul 0;34 Azul Claro 1;34
Verde 0;32 Verde Claro 1;32
Cyan 0;36 Cyan Claro 1;36
Rojo 0;31 Rojo Claro 1;31
Purpura 0;35 Magenta 1;35
Café 0;33 Amarillo 1;33
Gris Claro 0;37 Blanco 1;37
Debiendo sumarle 10 a los colores para obtener los colores para fondo.
También podemos realizar desplazamientos del cursor en filas y columnas:
"\033[10;20H"
donde 10 es la fila y 20 la columna, la "H" indica que esa secuencia responde a posicionamiento del cursor.
Verde 0;32 Verde Claro 1;32
Cyan 0;36 Cyan Claro 1;36
Rojo 0;31 Rojo Claro 1;31
Purpura 0;35 Magenta 1;35
Café 0;33 Amarillo 1;33
Gris Claro 0;37 Blanco 1;37
Debiendo sumarle 10 a los colores para obtener los colores para fondo.
También podemos realizar desplazamientos del cursor en filas y columnas:
"\033[10;20H"
donde 10 es la fila y 20 la columna, la "H" indica que esa secuencia responde a posicionamiento del cursor.
