Pular para o conteúdo

Barra de progresso em shell

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!
Daniel Miyagi j4p0n3g0
Hits: 16.486 Categoria: Shell Script Subcategoria: Avançado
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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!
Download barra.sh Enviar nova versão

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

Shell Script / Perl para sincronizar base de usuários do AD com o Zimbra

Administração Squid

Monitoração do CBQ

Ativar serviço que está parado

diskspacewarn.sh

#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

Entre na sua conta para comentar.