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: Reinaldo Marques de Lima
Subject: RE: [shell-script] Progress bar
Date: Tue, 20 Dec 2005 15:27:34 +0000


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 :)




reply via email to

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