Barra de progresso em shell
Publicado por Daniel Miyagi (última atualização em 10/02/2011)
[ Hits: 16.279 ]
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!
#!/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
Configurando CISCO por Shell Script
Instala o Stardict Dicionario!
Como Converter várias fotos JPG em arquivos PDFs, compactando e girando em 90º
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Instalação dualboot Windows 11 e Debian 13 (0)
Programa fora de escala na tela do pc (33)
Eu queria adicionar a incon do wifi e deixa transparente no fluxbox no... (0)









