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

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

Re: [shell-script] Screensaver em bash


From: Valtoir S. Jardim
Subject: Re: [shell-script] Screensaver em bash
Date: Wed, 9 May 2007 23:58:49 -0300 (BRT)
User-agent: SquirrelMail/1.4.6

Obrigado, Júlio.

Um pequeno acerto no script (ele não "pisava" na
última coluna do terminal:

sed -i 's/left_foot=$(($RANDOM%$((`tput cols` -
13))))/left_foot=$(($RANDOM%$((`tput cols` - 12))))/' pes.sh

A próxima versão terá quase metade do código e será muito mais randômica.

T+

Valtoir

Em Qua, Maio 9, 2007 21:57, Júlio César Mauro escreveu:
> Bem bolado e muito legal também ...
>
> pelas variaveis que tem nele, é um ótimo script de exemplo de case, while,
> tput
>
> parabens
>
> On 5/9/07, Valtoir S. Jardim <address@hidden> wrote:
>>
>>
>> Olá, pessoal.
>>
>> Sou cadastrado na lista há bastante tempo, mas não costumo participar e,
>> para falar a verdade, sequer tenho tido tempo de ler as mensagens. Mas
>> no
>> final de semana passado resolvi terminar um pseudo screensaver em bash,
>> que já tinha começado e não dava jeito de terminar. Na verdade já tenho
>> uma outra versão do mesmo script, completamente reescrita e que achei
>> bem
>> melhor (e menor também), mas tenho que revisar uns detalhes. Quando
>> estiver ok, publico para saber a opinião de vocês.
>>
>> Como podem ver, substituí os caracteres em branco da identação por "~".
>> Nada que um "sed -i 's/~/ /g' pes.sh" não resolva. Segue o script :
>>
>>
>> --------- pes.sh -----------------
>>
>> #!/bin/bash
>> #  autor: Valtoir dos Santos Jardim
>> # e-mail: valtoirjardim at gmail dot com
>> #   blog: valtoir.blogspot.com
>> #   data: 2007-05-05
>> # versao: 0.1
>> trap "clear; setterm -reset; exit" 2
>> colors=(31 32 33 34 35 36 37)
>> signal=( + - )
>> while getopts "hc:" opt; do
>> ~~~case $opt in
>> ~~~~~~h) echo -e "\nUso: pes.sh -h | -c <caractere>"
>> ~~~~~~~~~echo -e "\nParametros:"
>> ~~~~~~~~~echo -e " -h: Mostra essa (grande) ajuda"
>> ~~~~~~~~~echo -e " -c <caractere>: Limpa a tela e define caractere de
>> preenchimento"
>> ~~~~~~~~~echo -e "\nExemplo:"
>> ~~~~~~~~~echo -e " pes.sh -c#\n"
>> ~~~~~~~~~exit;;
>> ~~~~~~c) clear;
>> ~~~~~~~~~for i in $(seq 0 `tput lines`); do
>> ~~~~~~~~~~~~for w in $(seq 1 `tput cols`); do
>> ~~~~~~~~~~~~~~~~echo -e "$OPTARG\c"
>> ~~~~~~~~~~~~done;
>> ~~~~~~~~~~~~tput cup $i;
>> ~~~~~~~~~done;;
>> ~~~~~~?) exit -1;
>> ~~~esac
>> done
>> setterm -cursor off -bold on
>> while :; do
>> ~~~moreorless=$((RANDOM%2))
>> ~~~color=${colors[$(($RANDOM%${#colors[*]}))]}
>> ~~~delay=.$(((RANDOM%8)+4))
>> ~~~left_foot=$(($RANDOM%$((`tput cols` - 13))))
>> ~~~right_foot=$(($left_foot + 8))
>> ~~~lines=$(($(tput lines) - 5))
>> ~~~[ "$moreorless" == "1" ] && {
>> ~~~~~~tput cup $((lines + 5)) $left_foot
>> ~~~~~~echo -e "\e[$color;1m.oooO\c\e[m"
>> ~~~}
>> ~~~for line in `seq $((($lines ${signal[$moreorless]} 1))) -10 5`; do
>> ~~~~~~sleep $delay
>> ~~~~~~tput cup $((line++)) $right_foot
>> ~~~~~~echo -e "\e[$color;1mOooo.\e[m"
>> ~~~~~~tput cup $((line++)) $right_foot
>> ~~~~~~echo -e "\e[$color;1m(   )\e[m"
>> ~~~~~~tput cup $((line++)) $((right_foot + 1))
>> ~~~~~~echo -e "\e[$color;1m) /\e[m"
>> ~~~~~~tput cup $((line++)) $right_foot
>> ~~~~~~echo -e "\e[$color;1m(_/\c\e[m"
>> ~~~~~~sleep $delay
>> ~~~~~~tput cup $((line - 9)) $left_foot
>> ~~~~~~echo -e "\e[$color;1m.oooO\e[m"
>> ~~~~~~tput cup $((line - 8)) $left_foot
>> ~~~~~~echo -e "\e[$color;1m(   )\e[m"
>> ~~~~~~tput cup $((line - 7)) $((left_foot + 1))
>> ~~~~~~echo -e "\e[$color;1m\ (\e[m"
>> ~~~~~~tput cup $((line - 6)) $((left_foot + 2))
>> ~~~~~~echo -e "\e[$color;1m\_)\e[m"
>> ~~~done
>> ~~~sleep $delay
>> ~~~[ $((line -14)) -lt 0 ] || {
>> ~~~~~~tput cup $((line - 14)) $right_foot
>> ~~~~~~echo -e "\e[$color;1mOooo.\e[m"
>> ~~~}
>> ~~~[ $((line -13)) -lt 0 ] || {
>> ~~~~~~tput cup $((line - 13)) $right_foot
>> ~~~~~~echo -e "\e[$color;1m(   )\e[m"
>> ~~~}
>> ~~~[ $((line -12)) -lt 0 ] || {
>> ~~~~~~tput cup $((line - 12)) $((right_foot + 1))
>> ~~~~~~echo -e "\e[$color;1m) /\e[m"
>> ~~~}
>> ~~~[ $((line -11)) -lt 0 ] || {
>> ~~~~~~tput cup $((line - 11)) $right_foot
>> ~~~~~~echo -e "\e[$color;1m(_/\e[m"
>> ~~~}
>> ~~~sleep $delay
>> ~~~[ $((line -18)) -lt 0 ] || {
>> ~~~~~~tput cup $((line - 18)) $left_foot
>> ~~~~~~echo -e "\e[$color;1m(   )\e[m"
>> ~~~}
>> ~~~[ $((line -17)) -lt 0 ] || {
>> ~~~~~~tput cup $((line - 17)) $((left_foot + 1))
>> ~~~~~~echo -e "\e[$color;1m\ (\e[m"
>> ~~~}
>> ~~~[ $((line -16)) -lt 0 ] || {
>> ~~~~~~tput cup $((line - 16)) $((left_foot + 2))
>> ~~~~~~echo -e "\e[$color;1m\_)\e[m"
>> ~~~}
>> done
>>
>> T+
>>
>> Valtoir
>>
>>
>>
>> ---------------------------------------------------------------------
>> 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
>> ---------------------------------------------------------------------
>> Servidor Newsgroup da lista: news.gmane.org
>> Grupo: gmane.org.user-groups.programming.shell.brazil
>>
>>
>> Links do Yahoo! Grupos
>>
>>
>>
>
>
> --
> :wq!
>
> Júlio César Mauro
> ------------------------------------------------
> HWC #2776
> Skype: juliocesarmauro
> MSN: address@hidden
> LPI #: LPI000103014
> GNU/Linux User #  114287
> ------------------------------------------------
> "Porque eu, o Senhor teu Deus, te tomo pela tua mão direita, e te digo:
> Não
> temas, que eu te ajudo"
> Isaías 41:13
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>




reply via email to

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