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

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

Re: [shell-script] Progress bar


From: Fabricio Lopes de Souza
Subject: Re: [shell-script] Progress bar
Date: Fri, 23 Dec 2005 09:27:33 -0200

bom brigado pela indicacao do comando , consegui fazer isso , acho que
ficou legalzinho

//-----------------------------------------------------------------------------
#!/bin/bash

clear
read -p "Qual o tamanho do arquivo ? [ em KB ] : " size
read -p "Qual o nome do arquivo? : " name

> $name
echo "Sarting ..."
echo ""
echo -n "  |#"
verbose=$(expr $size / 100 )
verbose2=$(expr $size % 100 )
cols=$(tput cols)
lines=$(tput lines)
count=4
value=0
for i in $(seq 1 $size) ; do
   cat aaa >> $name
if [ $i -eq $(expr $value + $verbose ) -a $(expr ${count} - 4) -ne 99 ] ; then
      value=$i
      tput cup 4 ${count}
      ((count++))
      echo -n "#"
      tput cup 4 $( expr $cols - 32 )
      echo $(expr $count - 4 )%
fi
done
tput cup 4 $( expr $cols - 32 )
echo 100%
tput cup 4 ${count}
echo "#|"
//-----------------------------------------------------------------------------

On 12/21/05, Jorge Pereira <address@hidden> wrote:
> procure por "tput"
>
> man tput
>
> []'s
>
> Em 20/12/05, Fabricio Lopes de Souza <address@hidden> escreveu:
> >
> >  Obrigado , vou dar uma trabalhada em cima deles e posto aqui o resultado
> > so outra  duvida , nao tem como sobrescrever um caractere na tela ???
> > exemplo , no fim da tela tem um contador que vai crescendo ....
> >
> > On 12/20/05, Reinaldo Marques de Lima <address@hidden> wrote:
> > >
> > > 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 <address@hidden>
> > > >Reply-To: address@hidden
> > > >To: address@hidden
> > > >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: address@hidden
> > > ---------------------------------------------------------------------
> > > Esta lista é moderada de acordo com o previsto em
> > http://www.listas-discussao.cjb.net
> > > ---------------------------------------------------------------------
> > >
> > > Links do Yahoo! Grupos
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >
> >  ---------------------------------------------------------------------
> > 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
> > ---------------------------------------------------------------------
> >
> >
> >
> >  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
> > <http://br.rd.yahoo.com/SIG=12fcsgeip/M=386470.7632849.8508174.2369893/D=brclubs/S=2137111254:HM/Y=BR/EXP=1135112596/A=3135788/R=2/id=noscript/SIG=12c39trgo/*http://ad.br.doubleclick.net/clk;22846485;12120066;a?http://www.hoteis.com>
> > ------------------------------
> > *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:
> >    address@hidden<address@hidden?subject=Unsubscribe>
> >
> >    - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
> >    Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
> >
> >
>
>
> --
> Regards,
> Jorge Pereira, From: Olinda/Pe/Brazil
> Home:  http://www.jorgepereira.com.br/
> E-mail:  address@hidden, address@hidden
> Mobile: +55 (81) 8833-2484
> "Se você ama alguma coisa, liberte-a;
> Se ela não voltar a ti, cace-a e mate-a."
>
>
> [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]