Barra de progresso
Publicado por Roger Pereira Boff 10/01/2009 (última atualização em 25/10/2010)
[ Hits: 17.989 ]
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 }
Limpar o lixo das caixas de e-mail dos usuários que usam Maildir...
Ispeed v1.1 - Medidor de velocidade de download
Script para fazer download de vídeos do YouTube
Agenda de Contatos - Shell Script + MYSQL
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta