Barra de progresso
Publicado por Roger Pereira Boff 10/01/2009 (última atualização em 25/10/2010)
[ Hits: 17.671 ]
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 }
tuiteroPreguicoso1.0 - automatiza o envio de mensagens ao Twitter
Procurando um padrão num arquivo
Analisador de rede com aviso em net send
Atenção a quem posta conteúdo de dicas, scripts e tal (2)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Cant ´t attach process a10c: error 0 Wine fecha (3)
Dongle Bluetooth 5.0 não funciona no Pop Os 22.04 (4)
Acesso a internet servidor virtualizado (10)
Sistema da Coréia do Norte - Red Star OS (11)
redirecionando saida de comando touch para o AWK[AJUDA] (17)