Coloreando scripts

En bash podemos establecer muchos atributos de pantalla usando las secuencias de escape, incluyendo las negritas, el subrayado, el molesto blink y los colores de background y foreground. También podemos usar el comando tput ¿Qué nos impide usar todo eso para “adornar” nuestros bash scripts?

tput

El comando tput es lo más parecido en bash a las librerías de C ncurses (UNIX) y conio (Win). Permite posicionar el cursor en el lugar que queramos, limpiar la pantalla, cambiar el color del texto o ponerlo en negritas. No permite mayor control sobre el estilo y además solo funciona en terminales con las capacidades necesarias (xterm o terminales X, lo podemos comprobar mirando el contenido de la variable de entorno $TERM), excepto el control del cursor en columnas, que funciona en todo tipo de terminales (no así en filas). A cambio, es fácil de usar y los comandos que requiere son sencillos.

Un ejemplo. La salida del siguiente script (si no reconoces la sintaxis del bucle for échale un ojo a esto):


#!/bin/bash         

for ((i=0;i<9;i++))
        do
                tput setf $i
                echo -e Color asociado a $i
        done         

tput sgr0

Sería algo así:

tput

El color asociado a tput setf 0 no se ve porque es el negro.

Secuencias de escape

Las secuencias de escape son un poco más complicadas de escribir pero, como suele pasar, nos dan un mayor control ya que establecen atributos de pantalla, no de terminal, por lo que funcionan también en terminales “no X” (osea, la shell). La desventaja es que, en terminales X, pueden no comportarse como se espera, por lo que la portabilidad se ve algo comprometida.

Un listado exhaustivo de las secuencias disponibles las podeis encontrar en este capitulo de la Advanced Bash-Scripting Guide. Como muestra, un botón. Un botón con sorpresa :D

Descarga este archivo (es texto plano, lo siento, no sirve un copipaste por las secuencias especiales). Luego hazle un cat ;)

:wq

Por ~aKira~ el Sábado 29 de Marzo de 2008 a las 11:03 | Categoría: Programación | Feed para los comentarios | Trackback


4 comentarios para 'Coloreando scripts'

  1. kumo, el 7 de Mayo de 2008 a las 19:02.

    Invoco al espiritu de akiraaaaa…. Matarialiiiizate!!

    Que ya hace como dos meses que no apareces…

  2. Usando Mozilla Firefox 3.0b5 en Linux


  3. jackepc, el 14 de Mayo de 2008 a las 13:56.

    Por fin, ya habia dado por abandonado el blog.
    Muy interesante esta entrada por cierto.

  4. Usando Internet Explorer 7.0 en Windows XP


  5. vlan7, el 16 de Mayo de 2008 a las 11:18.

    Interesante, gracias.

    vlan7.

  6. Usando Mozilla Firefox 2.0.0.11 en Linux


  7. vlan7, el 22 de Mayo de 2008 a las 14:46.

    A ver si actualizas akira, que nos tienes mal acostumbraos jeje

    Saludos.

    vlan7.

  8. Usando Opera 8.52 en Linux


Despáchate a gusto:

XHTML: Etiquetas permitidas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>