você está aqui: Home → Colunistas → Cantinho do Shell
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 20 de Setembro de 2009
Eu assino a lista Shell-Script, mantida por João Eriberto Mota Filho, que também é autor do livre Descobrindo o Linux.
Em uma das mensagens da semana passada, saiu uma discussão sobre um screensaver, em Bash, imitando a famosa tela do filme Matrix. O script foi escrito pelo Júlio Cezar Neves, e eu o reproduzo a seguir. Esta mensagem gerou uma discussão muito interessante, em que muitos dos assinantes sugeriram modificações e melhorias. Enfim, muito educativo.
#!/bin/bash
trap "echo -e '\033[m0';clear;setterm -cursor on;exit" 2
setterm -cursor off
Chars="abcdefghijklmnopqrstuvxywzABCDEFGHIJKLMNOPQRSTUVXYWZ01234567890!@#$%¨&*()_-+=^~{}[];:?"
clear
while true; do
lin=0
[ ${#Cols[@]} -eq $(($(tput cols)-2)) ] && unset Cols
while true; do
COL=$((RANDOM%$(tput cols)))
[ "${Cols[$COL]}" ] && continue
Cols[$COL]=1
break
done
COR="\e[3$((RANDOM%7+1));1m"
while [ $lin -lt $(tput lines) ]; do
Char=$(echo $Chars | cut -c$((RANDOM%86+1)))
for i in `seq 1 5`;do
Char1=$(echo $Chars | cut -c$i);sleep 0.000001
tput cup $lin $COL; echo -en "\e[37;1m$Char1"
done
tput cup $lin $COL; echo -en "$COR$Char";sleep 0.0001
let lin++
done
done