shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RES: [shell-script] Screen saver em shell


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] Screen saver em shell
Date: Wed, 28 Jul 2004 17:50:29 -0300

Fala Victor,
eu não conheço legal o Matrix e acho que está faltando alguma coisa no que
fiz, mas gostei da sua idéia e implementei um tratamento de matrizes para
que não houvesse repetição de colunas até a tela estar quase cheia (quando
faltam somente 2 colunas, as vezes ele demora um pouco para achar uma coluna
vazia).

Se alguém, que conheça bem o matrix sacar o que falta, de as dicas que
poderemos fazer as alterações juntos, isto é, um trabalho cooperativo bem
dentro do espírito do SL. Aí vai:

#!/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)))
        tput cup $lin $COL; echo -en "$COR$Char";sleep 0.01
        let lin++
    done
done


Julio Cezar Neves
- Programa de Software Livre -
Tel:+55 21 2528-7070 / +55 21 8112-9988
Fax: +55 21 2528-7646
mailto:address@hidden


| -----Mensagem original-----
| De: Victor Leonardo [mailto:address@hidden]
| Enviada em: quarta-feira, 28 de julho de 2004 16:34
| Para: address@hidden
| Assunto: [shell-script] Screen saver em shell
| 
| 
| Estou estudando shell script e vi nas funções zz do Aurélio algumas
| funções que criam screen savers em shell. Daí resolvi tentar fazer um
| imitando o Matrix com aqueles caracteres caindo na tela. Até que tá
| ficando legal, só que eu queria dar uma incrementada colocando algumas
| letras ao invés de só números como está atualmente.
| Não é nada de muito importante, é apenas para colocar em prática o que
| já vi em shell. Mas quem puder ajudar a melhorar e incrementar eu vou
| agradecer.
| 
| Valeu :)
| 
| Victor
| 
| PS: foi mau, não tinha colocado o script no e-mail.
| 
| #!/bin/bash
| 
| trap "echo -e '\033[m0';clear;setterm -cursor on;exit" 2
| 
| setterm -cursor off
| 
| lin="1"
| COL=$((RANDOM%120+1))
| COR="\e[3$((RANDOM%7+1));1m"
| 
| anima ()
| {
|  while [ $lin -le 45 ]; do
|    lin=`expr $lin + 1`
|    tput cup $lin $COL; echo -e "$COR$((RANDOM%9+1))";sleep 0,01
|  done
|  COL=$((RANDOM%120+1))
|  lin="0"
|  COR="\e[3$((RANDOM%7+1));1m"
|  anima
| }
| 
| clear
| tput cup $lin $COL; echo -e "$COR$((RANDOM%9+1))";sleep 0,01
| anima
| 
| 
| 
| [As partes desta mensagem que não continham texto foram removidas]
| 
| 
| 
| ---------------------------------------------------------------------
| Esta lista não admite a abordagem de outras liguagens de 
| programação, como perl, C etc. Quem insistir em não seguir 
| esta regra será moderado sem prévio aviso.
| ---------------------------------------------------------------------
| Sair da lista: address@hidden
| ---------------------------------------------------------------------
| Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
 
Links do Yahoo! Grupos




 
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]