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

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

RES: [shell-script] Como usar o --gauge


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] Como usar o --gauge
Date: Fri, 17 Oct 2003 09:47:19 -0300

Então aí vai novamente.

O segundo programa faz um relógio e o primeiro serve somente para testá-lo.
No tstspin.sh vc deve substituir o "sleep 30 &" "por nome-do-seu-programa
&". O $!, 13, 43, 30 são respectivamente: PID do processo recém startado em
background, linha e coluna onde o relógio aparecerá (para não destruir um
eventual conteúdo de tela) e tempo previsto para execução (este último é
opcional).

$ cat tstspin.sh
sleep 30 &
spin.sh $! 13 43 30

$ cat spin.sh
#!/bin/sh
#======================================================================
# Leia: Linux - Programacao Shell  ISBN: 85-7452-048-9
# Autor: Julio Cezar Neves <mailto:address@hidden>
#======================================================================

if  [ $# -lt 3 ]
then
        echo "
    Uso: `basename $0` <PID do proc. em background> <No. da Lin.> <No. da
Col.> [Tempo previsto p/ execucao]
"
        exit 1
fi
[ $4 ] && Tp=$4
Pon='\|/--\|/--'
Lin1=$2
Col1=$3
Lin2=`expr $Lin1 + 1`
Lin3=`expr $Lin1 + 2`
Lin4=`expr $Lin1 + 3`
Lin5=`expr $Lin1 + 4`
Lin6=`expr $Lin1 + 5`
Col2=`expr $Col1 + 1`
Col3=`expr $Col1 + 2`
Col4=`expr $Col1 + 3`
Col5=`expr $Col1 + 4`
i=0
Decorr=0
tput cup $Lin1 $Col1
echo '+-----+'
tput cup $Lin2 $Col1
echo '|     |'
tput cup $Lin3 $Col1
echo '|  +  |'
tput cup $Lin4 $Col1
echo '|     |'
tput cup $Lin5 $Col1
echo '+-----+'
tput cup $Lin6 $Col1
echo 'AGUARDE'

while kill -0 $1 2> /dev/null
do
    i=`expr $i % 8 + 1`
    case $i in
        1)  tput cup $Lin3 $Col2
            echo "  "
            tput cup $Lin2 $Col3
            echo `echo $Pon | cut -c1`
            ;;
        2)  tput cup $Lin2 $Col3
            echo " "
            tput cup $Lin2 $Col4
            echo `echo $Pon | cut -c2`
            ;;
        3)  tput cup $Lin2 $Col4
            echo " "
            tput cup $Lin2 $Col5
            echo `echo $Pon | cut -c3`
            ;;
        4)  tput cup $Lin2 $Col5
            echo " "
            tput cup $Lin3 $Col5
            echo `echo $Pon | cut -c4,5`
            ;;
        5)  tput cup $Lin3 $Col5
            echo "  "
            tput cup $Lin4 $Col5
            echo `echo $Pon | cut -c6`
            ;;
        6)  tput cup $Lin4 $Col5
            echo " "
            tput cup $Lin4 $Col4
            echo `echo $Pon | cut -c7`
            ;;
        7)  tput cup $Lin4 $Col4
            echo " "
            tput cup $Lin4 $Col3
            echo `echo $Pon | cut -c8`
            ;;
        8)  tput cup $Lin4 $Col3
            echo " "
            tput cup $Lin3 $Col2
            echo `echo $Pon | cut -c9,10`
            ;;
    esac
    sleep 1
    if  [ $Tp ]
    then
        Decorr=`expr $Decorr + 1`
        Perc=`expr $Decorr \* 100 / $Tp`
        [ $Perc -ge 100 ] && Perc=99
        [ $Perc -lt 10 ] && Perc=0$Perc
        tput cup $Lin6 $Col1
        echo "+-$Perc%-+"
    fi
done
for i in 1 2 3 4 5 6
do
        eval tput cup \$Lin$i $Col1
        echo "       "
done

> -----Mensagem original-----
> De: Adriano Brand [mailto:address@hidden]
> Enviada em: quinta-feira, 16 de outubro de 2003 16:25
> Para: lista shell-script
> Assunto: Re: [shell-script] Como usar o --gauge
> 
> 
> Desculpa estar pentelhando julio... 
> mas acho q perdi alguma coisa, pq não recebi 
> nada referente ao gauge na lista q tenha sido 
> enviado por vc..:(
> 
> Parabéns pela sua terceira edição,
>  pena que vou ter que comprá-lo novamente... 
> algum espertinho aki do trampo levou embora...
> -- 
> att
> Adriano Brand
> ------------------
> address@hidden
> Técnico em eletronica
> Crea sc-56756-3
> Curitiba-Paraná
> 
> 
> [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.listasdiscussao.cjb.net
---------------------------------------------------------------------
 

Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html 



reply via email to

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