martes, 13 de mayo de 2008

Script, Color y echo (echo color)

Siempre he querido colorizar, colorear o pintar las salidas de un script, bien esto se puede realizar con echo y las secuencias de escape, un ejemplo de ello seria:

echo -e '\E[37;44m'"\033[1mCualquier cosa\033[0m"

Copiando estos comandos en una consola pintorretea la salida del comando en Blanco sobre Azul.
Una plantilla sencilla para los que les gustan colorizar o colorear cuanto script que se les ocurra es como sigue:

echo -e '\E[LETRAS;FONDOm ' "\033[ATRIBUTOm tus sabias palabras con color. \033[0m"

Estas secuencias de escape tambien tienen otras utilidades en lenguajes de script como Perl...


Esta es la secuencia de caractereres necesaria para colorear con echo. En el lugar donde dicen la palabras LETRAS y FONDO se coloca un numero que representa un color que se desee. Para las LETRAS y para el FONDO los numeros son diferentes.

Color

LETRAS

FONDO

Negro

30

40

Rojo

31

41

verde

32

42

amarrillo

33

43

azul

34

44

magenta

35

45

cyan

36

46

white

37

47


En donde dice la palabra ATRIBUTO va un numero que da una caracteristica especial a la linea.

Accion

ATRIBUTO

Color Letras Sin Fondo

0

Color Letras Brillantes y Fondo

1

Color Letras y Fondo

2


3

Color Letras subrayadas y Fondo

4

Parpadea Color Letras y Fondo

5


6

Reverse Color Letras y Fondo

7



Con esto ya puedes pintorrretear todos los scripts que quieras
...ahora si necesitas saber lo que significa o realiza esta secuencia de caracteres entonces lo explicó con el siguiente ejemplo:

echo -e '\E[37;44m'"\033[5mCualquier cosa\033[0m"

Que significa este poco de caracteres, bueno para empezar luego del echo

echo -e

esta la opcion -e esta permite que el comando acepte la secuencia de escapes ANSI de la Barra invertida (Backslash), es decir los códigos de escape ANSI se utilizan para dar formato a la salida de una terminal de texto ... A continuación sigue la serie caracteres resaltados:

echo -e '\E[33;44m'

Como he dicho mas arriba empezamos a darle formato con la secuencia de escape \E[33;44m y lo que sigue estos numeros representan los colores de las letras y del fondo, en este caso las letras serán de color Amarillo y el fondo de color Azul, pero mas alla de eso, le dara color a todas las líneas que síguen a continuación. Si desea pruebelo en una consola. para volver los colores originales basta con colocar..

tput sgr0 # esto para colocar los colores a la normalidad

Luego sigue

echo -e '\E[37;44m'"\033[5mCualquier cosa....

Los caracteres resaltados es la secuencia de escape para activar atributos sobre la linea, el numero en amarillo es el numero de la accion asi para este ejemplo el texto titilará o parpadeará...

al Final se de nuevo los colores a su original con el texto resaltado...

echo -e '\E[37;44m'"\033[5mCualquier cosa\033[0m"

Si estos caracteres no se colocan, las lineas que siguen a continuación seguirán pintorreteadas..Bueno ya esta ahora a pintorretear todo....

y la linea se mostrara en la consola como un texto con Fondo Azul letras Blancas y parpadeando...
y si ver colores en todos lados de su consola pulsa aca Color vim, Color man, color grep, color logs .... mucho color.... para no tener una consola tan gris...


Muy sencillo, muy fácil, para un mortal como Yo ;)



(echo color) <--- para que lo consiga google. Fuente: http://www.faqs.org/docs/abs/HTML/colorizing.html
http://www.faqs.org/docs/abs/HTML/index.html
http://es.wikipedia.org/wiki/C%C3%B3digo_escape_ANSI