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: Júlio César Mauro
Subject: Re: [shell-script] Screensaver em bash
Date: Wed, 9 May 2007 21:57:35 -0300

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]