Barra de progresso em shell
Publicado por Daniel Miyagi (última atualização em 10/02/2011)
[ Hits: 16.384 ]
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
slackpigs - veja os pacotes que mais ocupam espaço no Slackware
Cadastro Regras de Controle de Banda - CBQ
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
OCS Inventory NG: Instalação de Agentes Linux e Windows + Autenticação HTTP
O Free Download Manager não abre no Fedora 43 KDE Plasma (2)
O que houve com slackware ??? (9)
Permissão acesso as pastas servidor Ubuntu Server 24.04 (5)









