¡Feliz 2013!!!

Traigo un regalo de fin de año (o de año nuevo) para todos los que me leéis, que sé que sois unos cuantos aunque no dejéis comentarios. 🙂

#!/bin/bash

p=0; i=1; c=0
read lins cols <<< $(stty size); IFS=
t=$(xxd -p -r <<< 46656c697a203230313321 | sed 's/\(.\)/( \1 )\n/g;s/$/ \n/' | figlet | sed $'s/\e[^m]*m//g')
[ -z "$t" ] && exit
w=$(wc -L <<< "$t")
for ((n = 1; n < 10; n++)); do
    while read -r l; do
        if ((p % 6 == 0)); then
            (((c + i) >= cols - w || (c + i) < 1)) && ((i = -i))
            ((c += 2 * i))
        fi
        printf "\e[1;3$((p % 8))m%${c}s%s\n" "" "$l"
        ((p++))
        sleep 0.05
    done <<< "$t"
done

Supongo que todos sabréis que hacer con esto, pero por si acaso allá van unas instrucciones. Simplemente tenéis que crear un fichero en cualquier lugar en el que tengáis permisos que se llame, por ejemplo, feliz2013, y copiar el script en él. Luego le dáis permisos y lo lanzáis.

chmod u+x feliz2013
./feliz2013

Si os dá algún error probablemente sea porque no tenéis instalado xxd o figlet. En el caso de xxd, viene con el vim, así que sólo tenéis que instalar vim para tenerlo. Figlet tiene su propio paquete. Por ejemplo, en ArchLinux sería así:

sudo pacman -S vim figlet

Y en debian:

sudo aptitude install vim figlet

Espero que os guste. 🙂

Anuncios

6 pensamientos en “¡Feliz 2013!!!

  1. Damian Rivera

    Impresionante script,funciono de maravilla,dejo este sencillo:

    perl -e ‘system(‘clear’); while (1){ print scalar reverse”\ zileF\r”,”:( 3102″ }’

    Feliz 2013 🙂

    1. hexborg Autor de la entrada

      Muy bueno. Me ha gustado. 🙂
      Ahora la versión en bash, que es más corta:

      clear; while :; do rev <<< ':( 3102 zileF'; done

      ¡Feliz año! 🙂

Los comentarios están cerrados.