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.484 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

DHCP com Proxy Squid

POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - CRIANDO USUÁRIOS

Executando comandos remotos via Dropbox

Script de compilação automática do GCC-5.3.0 para Debian/Ubuntu de 32 bits

Removendo kernels antigos no Ubuntu

#1 Comentário enviado por andrecostall em 10/02/2011 - 14:48h
Eaee Daniel !!!
Cara, simples e muito loco.
flw
#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.