Pular para o conteúdo

Barra de Progresso com Shell Script

Gerando uma barra de progresso com shell script.
Kleilson dos Santos KleilsonSantos
Hits: 3.463 Categoria: Shell Script Subcategoria: Avançado
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

Gerando uma barra de progresso com shell script.
Download barra-de-progresso.sh Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Cálculo de raiz quadrada

Barra de progresso em shell script com cores roxa e verde

Configurando IPTABLES de forma simples

Gerenciamento de espaço em disco

Script para correção de arquivos Makefile usando comando patch

#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

Entre na sua conta para comentar.