tenho tres exemplos que consegui não sei onde, espero que te ajude...

#......................................................................................................................................#

Gerando barra de Progresso
##########################
#só com shell:
t=0;echo -n " 0 ";while [ $t -lt 100 ];do t=$[t+1];\
echo -ne "\e[${#t}D#$t";sleep 1;done
#idem:
t=0;echo -en "                                                  100\r 0 ";\
while [ $t -lt 100 ];do t=$[t+1];[ $[ $t%2 ] -eq 0 ]&&\
echo -ne "\e[${#t}D#$t";sleep 1;done;echo
#+1:
t=0;while [ $t -lt 100 ];do echo -ne "\r  0";x=0;while [ $x -lt 100 ];do \
[ $[$x%2] -eq 0 ]&& { echo -ne "\e[7m";[ $x -gt $t ] &&echo -en "\e[0m";\
echo -n " ";};x=$[x+1];done;echo -n 100%;sleep 1;t=$[t+1];done;echo
#com dialog:
t=0;while [ $t -lt 100 ];do t=$[t+1];echo $t;sleep .3;done\
|dialog --gauge "Barra de Progresso com dialog" 10 72

#.......................................................................................................................................#

[]'s

echo 1818051527984510780893780664296243491354600493300713506724768535179018P 
| dc




>From: Fabricio Lopes de Souza <[EMAIL PROTECTED]>
>Reply-To: [email protected]
>To: [email protected]
>Subject: [shell-script] Progress bar
>Date: Mon, 19 Dec 2005 11:53:42 -0200
>
>Estou tentando fazer uma barrinha que mostre +- o quanto foi executado
>do processo e talz.
>Algumas duvidas surgiram :
>Eh possivel de alguma forma o script conseguir ler o conteudo de
>COLLUMNS sem ter que exportar ?
>A algum outro jeito de fazer essa barra ?
>
>ta ai o meu teste
>Script meramente ilustrativo :)
>[code]
>#!/bin/bash
>
>[ $COLUMNS ] || {
>    echo Você precisa exportar a variável \"COLUMNS\":
>       echo "Tente \"export COLUMNS\" e tente executar novamente"
>          exit 1
>          }
>
>read -p "Qual o tamanho do arquivo ? [ em KB ] : " size
>read -p "Qual o nome do arquivo? : " name
>
> > $name
>echo -n "|="
>verbose=$(expr $size / $COLUMNS )
>flag_B=0
>for i in $(seq 1 $size) ; do
>    if [ $flag_B -eq 0 ] ; then
>       flag_A=$i
>       flag_B=1
>    fi
>temp=$(expr $flag_A + $verbose)
>    if [ $i -eq $temp ] ; then
>       echo -n "="
>       flag_B=0
>    fi
>    cat a >> $name
>
>done
>    echo -n "|"
>    echo ""
>echo "DONE!"
>[/code]
>
>explicando
>Primeiro se exporta COLUMNS para sabermos o tamanho do terminal
>Depois pegamos o tamanho do arquivo que se quer , seguindo do
>pressuposto que o arquivo "a" tem 1KB . Tamanho do Arquivo ($size) /
>Colunas ($COLUMNS) = Intervalo ($verbose)  , ou seja a cada intervalo
>devera aparecer um caracter .
>
>Espero que fui claro ...
>
>Abracos :)




---------------------------------------------------------------------
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: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a