Barra de progresso em shell

Publicado por Daniel Miyagi (última atualização em 10/02/2011)

[ Hits: 15.989 ]

Download barra.sh




Estive procurando estes dias alguma forma de criar uma barra de progresso em shell script, encontrei um código e fiz algumas alterações que acredito ter ficado melhor. Espero que tenha utilidade para alguém.

Falou!

  



Esconder código-fonte

#!/bin/bash
# Daniel Miyagi (j4p0n3g0)
# 24/01/2011

array[1]=$(echo "\\")
array[2]=$(echo "|")
array[3]=$(echo "/")
array[4]=$(echo "-")
SPACE="-"
LIMITE=$(tput cols)
COLUNA=$((LIMITE - 15))
INDICE=0
CONTADOR=0
PORCENTAGEM2=0

clear
while true ; do
        INDICE=$(echo "$INDICE + 1" | bc) 
        tput cup 0 0
        echo "$PORCENTAGEM2% - ["
        SPACE=$(echo "$SPACE-")
        tput cup 0 8
        echo -e "\e[31;1m$SPACE>\e[m\n"
        tput cup 0 $COLUNA
        echo "] ${array[$INDICE]} - Progresso"
        sleep 0.01
        CONTADOR=$( expr 1 + $CONTADOR)
        if [ $INDICE = 4 ]; then
        INDICE=0
        fi
        TAMANHO2=$( echo $SPACE | wc -c )
        TAMANHO=$( echo "$TAMANHO2 - 1 " | bc )
        COLUNA2=$( expr $COLUNA - 9 )
        [ $TAMANHO -eq $COLUNA2 ] && break
        TAMANHO3=$(echo "$TAMANHO + 10" | bc)
        PORCENTAGEM=$(echo "$TAMANHO3 * 100" | bc )
        PORCENTAGEM2=$(echo "$PORCENTAGEM / $COLUNA" | bc )
done

Scripts recomendados

Organize seu /var/log/messages

Atualizando se Slackware

zsh: Sattolo's Random Cyclic Permutation

Cronômetro em shell

FingerPrint


  

Comentários
[1] Comentário enviado por andrecostall em 10/02/2011 - 14:48h

Eaee Daniel !!!
Cara, simples e muito loco.
flw

[2] Comentário enviado por /bin/laden em 15/02/2011 - 18:04h

Beleza, mas com integro isso a um script pra monitorar o progresso de uma atividade?

----

Encontrei esse que é super funcional

http://www.slackbr.org/forum/viewtopic.php?f=45&p=77979&sid=0a8418d01c7091c8ff11b265f1926e02#p77979

Não é barra de progresso, mas é do tipo daquela barrinha que fica girando! Testei aqui num script meu e funfou perfeito!!!

[3] Comentário enviado por j4p0n3g0 em 15/02/2011 - 21:39h

entao /bin/laden ... nao sei como funciona sua atividade ....

e teria que ver se fica viavel implementar esse script, pois teria que altarar muitas coisas ...

faloww

[4] Comentário enviado por mekelburg em 19/07/2011 - 05:31h

Como posso adicionar essa barra durante a execução de um processo, por exemplo a cópia de um arquivo?

[5] Comentário enviado por j4p0n3g0 em 19/07/2011 - 09:32h

makelburg ...

seria um pouco chato fazer isso ...

um exemplo:

teria que alterar as variaveis para o valor total do arquivo e depois pegando o tamanho que ja foi baixado para poder gerar a barra de progresso.

[6] Comentário enviado por jhonatan_muller em 08/05/2012 - 05:42h

muito loco parabens ficou dahora.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts