Barra de progresso
Publicado por Roger Pereira Boff 10/01/2009 (última atualização em 25/10/2010)
[ Hits: 18.385 ]
Homepage: http://rogerboff.wordpress.com
Download 1286726480.ProgressBar.sh (versão 2)
Script para geração de barra de progresso de uso geral. Baseado no script do gauge.sh do Aurélio M. Jargas.
Versão 2 - Enviado por Roger Pereira Boff em 10/10/2010
Changelog: - Alterado "{FONTE}" para "{VDESC}".
- Alterado "#!/bin/bash" para "#!/usr/bin/env bash" para ficar compatível com outras distribuições Linux
Download 1286726480.ProgressBar.sh
#!/bin/bash
# progressbar
#
# INFORMAÇÕES: www.shellscripts.com.br/script/progressbar
# NASCIMENTO : 23 de outubro de 2008
# AUTORES : Roger Pereira Boff < rogerboff (@) gmail com>
# DESCRIÇÃO : Função para geração de barra de progresso.
# LICENÇA : GPL v2
# CHANGELOG : www.shellscripts.com.br/script/progressbar/changelog
# VERSÂO : 0.8.9
#
##############################################################################
# Este script é baseado no script gauge.sh de Aurélio Marinho Jargas
##############################################################################
# Habilitado o modo restrito de saída para qualquer comando que retorne qual-
# quer valor diferente de "0"
set -e
# Função para geração de barra de progresso.
#
# Exemplo:
# [#########################.........................] 50%
# Registro(s) processado(s): 50 de 100."
#
# Exemplo de uso:
# ProgressBar "TotalDeRegistro"
ProgressBar()
{
# Verifica se a barra de progresso já foi criada.
if [ -z "$PBAR" ];
then
# Total de registros a serem processados.
PBTOTAL="$1"
# Tamanho da string $PBTOTAL
PBTOTALTAM="${#PBTOTAL}"
# String com espaço reservado para 1.000.000.000 de registros.
PBSTR=" de $PBTOTAL."
# Cria a barra de progresso e o total de registros processados.
echo "[..................................................] %"
echo "Registro(s) processado(s): ${PBSTR:$((10-$PBTOTALTAM))}"
# Move o cursor para a coluna 59 e 2 linhas acima..
echo -en "{FONTE}33[59G{FONTE}33[2A"
# Seta que a barra de progresso já foi criada.
PBAR="true"
fi
######################### Imprime a porcentagem no final da barra ###########################################################
# Adiciona 1 registro processado.
PBREG=$((PBREG+1))
# Calcula a porcentagem de registros processados
PBPORC=$((PBREG*100/PBTOTAL))
# Move o cursor para a coluna 56 da barra de progresso.
echo -en "{FONTE}33[$((57-${#PBPORC}))G$PBPORC{FONTE}33[59G"
######################### Imprime o andamento na barra de progresso #########################################################
# Recupera a posição anterior da barra de progresso.
PBBARPOSANT="${PBBARPOS:-1}"
# Calcula a posição na barra de progresso.
PBBARPOS=$((PBPORC/2+1))
# Verifica se a posição é igual a "1".
if [ "$PBBARPOS" = "1" ]; then PBBARPOS=$((PBBARPOS+1)); fi
# Utilizado "for" para imprimir a barra nas possiveis lacunas geradas.
for PBBARPOSFOR in $(seq $((PBBARPOSANT+1)) $PBBARPOS)
do
# Imprime o movimento na barra de progresso.
echo -en "{FONTE}33[${PBBARPOSFOR}G#"
done
# Move o cursor para depois do sinal de porcentagem.
echo -en ""
######################### Imprime o total de registros ######################################################################
# Calcula a posição do cursor para o registro.
PBREGPOS=$((28+$PBTOTALTAM-${#PBREG}))
# Move o cursor para a coluna 28.
echo -en "{FONTE}33[1B{FONTE}33[${PBREGPOS}G$PBREG{FONTE}33[59G{FONTE}33[1A"
######################## Finaliza com quebra de linha #######################################################################
# Verifica se é o ultimo registro a ser processado.
if [ "$PBTOTAL" = "$PBREG" ];
then
# Move o cursor para 1 linha abaixo
echo -en "{FONTE}33[1B"
# Quebra a linha para que linha de comando não fique no final da barra de progresso.
echo ""
fi
}
Renomeia diretorio,subdiretorio e arquivos de maiuscula > minuscula
Instalando e Integrando o SWATCH com SNORT
Criar usuários com ponto (nome.usuario) no Slackware
Localizar e Matar Determinado Processo Pelo Nome
Script para correção de arquivos Makefile usando comando patch
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
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Programa fora de escala na tela do pc (1)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)
O programa assinador digital (1)









