Barra de progresso em shell

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

[ Hits: 15.817 ]

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

Twitter via linha de comando!

DHCP Configurator

Instalação automática do Nagios

Raízes da equação de segundo grau (Bhaskara) através do prompt em shell

Liberação do servidor DNS no firewall


  

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