Nevica sul terminale


La neve artificiale non è solamente per i campi da sci, ma anche per le interfacce a riga di comando di *NIX.

Con una semplice command line si può far nevicare nel proprio terminale (o fare uno scherzo ad un collega).

Questa è la versione ASCII (tutta su una riga):

clear;while :;do echo $LINES $COLUMNS $(($RANDOM%$COLUMNS));sleep 0.1;done|gawk '{a[$3]=0;for(x in a) {o=a[x];a[x]=a[x]+1;printf "33[%s;%sH ",o,x;printf "33[%s;%sH*33[0;0H",a[x],x;}}'

questa invece è la versione UNICODE:

clear;while :;do echo $LINES $COLUMNS $(($RANDOM%$COLUMNS)) $(printf "\u2743\n");sleep 0.1;done|gawk '{a[$3]=0;for(x in a) {o=a[x];a[x]=a[x]+1;printf "33[%s;%sH ",o,x;printf "33[%s;%sH%s 33[0;0H",a[x],x,$4;}}'

Nell’esempio UNICODE viene utilizzato il carattere 0x2743 HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK, ma si possono utilizzare altri simboli simili del range Dingbats. (via climagic)

,

3 risposte a “Nevica sul terminale”

  1. Uhm… mi sa che mi manca il supporto per ANSI o qualcosa del genere, perche` da me butta fuori codici di controllo misti a fiocchi di neve.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *