Barra de Progresso com Shell Script

Publicado por Kleilson dos Santos (última atualização em 04/07/2020)

[ Hits: 2.899 ]

Homepage: https://github.com/KleilsonSantos/Shell-Script/

Download barra-de-progresso.sh




Gerando uma barra de progresso com shell script.

  



Esconder código-fonte

#!/bin/bash
#--------------------------------------------------------------------
# Name Script:   script-barra_de_progresso.sh
# Information:   https://github.com/KleilsonSantos/Shell-Script
# Creation in:   June 2, 2020
# Author:   Kleilson Santos <canalnovoti@gmail.com>
# Description:   Criando barra de progresso
# License:   GPL v3
# Version:   0.1.5
#--------------------------------------------------------------------

# Declarando variável _ARRAY, o parâmetro "-r" indica 
# que a variável e apenas leitura (read)
declare -r _ARRAY=(/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /)

# Declarando variável _BAR_TYPE, o parâmetro "-r" indica 
# que a variável e apenas leitura (read)
#declare -r _BAR_TYPE_1="&#9617;&#9618;&#9619;&#9608;&#9619;&#9618;&#9617;"
#declare -r _BAR_TYPE_2="&#10251;&#10265;&#10297;&#10296;&#10300;&#10292;&#10278;&#10279;&#10247;&#10255;"
#declare -r _BAR_TYPE_3="&#9682;&#9680;&#9681;"
#declare -r _BAR_TYPE_4=":(:|:):D"
#declare -r _BAR_TYPE_5="&#9671;&#9672;&#9670;"
#declare -r _BAR_TYPE_6="&#9900;&#9901;&#9902;&#9903;"
#declare -r _BAR_TYPE_7="##############################"
#declare -r _BAR_TYPE_8="..........................."
#declare -r _BAR_TYPE_9="============================"
#declare -r _BAR_TYPE_10="------------------------------"
declare -r _BAR_TYPE="##############################"

# Declarando variável _TOTAL, o parâmetro "-r" indica 
# que a variável e apenas leitura (read)
declare -r _TOTAL=${#_ARRAY[@]}

# Esconde o cursor
tput civis -- invisible

# Simulando carregamento de um comando executando
echo "Loading..."

for i in "${!_ARRAY[@]}"; do
   #statements
   # Calculando a porcentagem do loop.
   porc=$(((($i+1) * 100) / _TOTAL))
   # Calcula o ultimo caracter da barra baseado na porcentagem.
   bar=$((($porc * _TOTAL) / 100))
   #Simulando um comando rodando
    sleep 0.1
   # Mostrando a porcentagem da barra de progresso.
   # Flag -n -> Manter o cursor na mesma linha.
   # Flag -e -> Voltar o cursor no inicio da linha.
   # \\r -> Progressão da barra em uma única vez.
   # Cores na saida da barra de progresso
   # \e[01;32m -> Cor Verde
   # \e[01;37m -> Cor Branca
   echo -n -e "\\r\e[01;32mProgress...$porc%\e[01;37m[${_BAR_TYPE:0:$bar}]"
done

# Pulando linha após termino do barra de progresso
echo ""
# Mostra o cursor
tput cnorm -- normal
tput sgr0

Scripts recomendados

Dicionário e tradutor baseado no Michaelis

UNIX - Alerta de espaço em disco via e-mail

Debian Help Admin 1.1

Alteração de Senha do Mysql (sem saber a senha anterior).

Diferença entre datas


  

Comentários
[1] Comentário enviado por maurixnovatrento em 04/07/2020 - 16:05h


muito bom.

___________________________________
Conhecimento não se Leva para o Túmulo.

[2] Comentário enviado por tcboeira em 22/07/2020 - 09:09h

Legal... Mas, desculpe a pergunta... Onde eu insiro o comando que eu desejo que seja acompanhado?
Tipo... no caso, um "apt-get" por exemplo?

[3] Comentário enviado por maurixnovatrento em 22/07/2020 - 12:46h


pois, é. É uma boa pergunta.

___________________________________
Conhecimento não se Leva para o Túmulo.

[4] Comentário enviado por tcboeira em 22/07/2020 - 12:58h

descobri...
inseri o comando ao final do script ... mais precisamente antes de "# Pulando linha após termino do barra de progresso"
Inseri ao fim, o " >/dev/null 2>&1" para não ter saida na tela.... ficou assim... sudo apt update >/dev/null 2>&1
Funcionou ... Claro que distribui para todos os lados hehehe já que tenho alguns scripts que tem esses progressos


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts