Implementar barra de progresso em um sript

1. Implementar barra de progresso em um sript

leonardo madeira
leonardomadeira

(usa Ubuntu)

Enviado em 15/11/2016 - 14:48h

Boa tarde amigos, tenho um script que faz a configuração automatica de um squid, firewall e instala scripts de gerenciamento de usuários tudo automatico em um servidor ubuntu.

Gostaria de saber como eu faço pra colocar uma barra de progresso no script, por exemplo, quando o usuário coloca o IP do servidor e da ok, ao iniciar a configuração aparecia uma parra de progresso ate finalizar o processo.

To perdido... alguem pra ajuda?

Obrigado.

Segue abaixo o começo do meu script:

#/bin/bash
#################################################################
# Configuração automatica e instalação de scripts em VPS #
# Autor: Khromus #
#################################################################
# -y - assume `sim' para todas as perguntas
apt-get install lynx -y 1> /dev/null 2> /dev/stdout
apt-get install dialog -y 1> /dev/null 2> /dev/stdout
ip2=$(lynx -dump ip.dnsexit.com)
cat -n /etc/issue |grep 1 |cut -d' ' -f6,7,8 |sed 's/1//' |sed 's/ //' > /etc/so
echo -e "\033[1;33m- - - - -> \033[01;34mSeu sistema operacional:\033[0m $(cat /etc/so)"
echo -e "\033[1;33m- - - - -> \033[01;34mIP do Servidor:\033[0m $ip2"
echo -e "\033[1;33m- - - - -> \033[01;34mDesenvolvedor:\033[0m Khromus"
os=$(cat /etc/so)
echo -e "Digite o ip do vps !" ; read ip
clear
if cat /etc/so |grep -i ubuntu |grep 16 1> /dev/null 2> /dev/null ; then
echo -e "\033[1;32mConfigurando, Aguarde ..."
echo -e "\033[1;32mSQUID É CONFIGURADO PARA TRABALHAR NAS PORTAS\033[0m 80, 8080, 8799, 3128"
echo -e "\033[1;32mSerá instalado um conjunto de scripts para gerenciamento da VPS ..."
apt-get update 1> /dev/null 2> /dev/null
apt-get install squid3 -y 1> /dev/null 2> /dev/null
apt-get install ufw -y 1> /dev/null 2> /dev/null


  


2. Re: Implementar barra de progresso em um sript

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 15/11/2016 - 18:15h

leonardomadeira escreveu:

Boa tarde amigos, tenho um script que faz a configuração automatica de um squid, firewall e instala scripts de gerenciamento de usuários tudo automatico em um servidor ubuntu.

Gostaria de saber como eu faço pra colocar uma barra de progresso no script, por exemplo, quando o usuário coloca o IP do servidor e da ok, ao iniciar a configuração aparecia uma parra de progresso ate finalizar o processo.

To perdido... alguem pra ajuda?

Obrigado.

Segue abaixo o começo do meu script:

#/bin/bash
#################################################################
# Configuração automatica e instalação de scripts em VPS #
# Autor: Khromus #
#################################################################
# -y - assume `sim' para todas as perguntas
apt-get install lynx -y 1> /dev/null 2> /dev/stdout
apt-get install dialog -y 1> /dev/null 2> /dev/stdout
ip2=$(lynx -dump ip.dnsexit.com)
cat -n /etc/issue |grep 1 |cut -d' ' -f6,7,8 |sed 's/1//' |sed 's/ //' > /etc/so
echo -e "\033[1;33m- - - - -> \033[01;34mSeu sistema operacional:\033[0m $(cat /etc/so)"
echo -e "\033[1;33m- - - - -> \033[01;34mIP do Servidor:\033[0m $ip2"
echo -e "\033[1;33m- - - - -> \033[01;34mDesenvolvedor:\033[0m Khromus"
os=$(cat /etc/so)
echo -e "Digite o ip do vps !" ; read ip
clear
if cat /etc/so |grep -i ubuntu |grep 16 1> /dev/null 2> /dev/null ; then
echo -e "\033[1;32mConfigurando, Aguarde ..."
echo -e "\033[1;32mSQUID É CONFIGURADO PARA TRABALHAR NAS PORTAS\033[0m 80, 8080, 8799, 3128"
echo -e "\033[1;32mSerá instalado um conjunto de scripts para gerenciamento da VPS ..."
apt-get update 1> /dev/null 2> /dev/null
apt-get install squid3 -y 1> /dev/null 2> /dev/null
apt-get install ufw -y 1> /dev/null 2> /dev/null


-----------------------------------------------------------------
Boa noite Leonardo.
Segue uma solução . . .
#!/bin/bash
C="\x1B[0;38;5;156m"
F="\x1B[m"
BARRA="##########################################################################################"

#################################################################
# Configuração automatica e instalação de scripts em VPS #
# Autor: Khromus #
#################################################################
# -y - assume `sim' para todas as perguntas
#################################################################

BPROG() { N=$((N+6)) ; sleep 0.25 ; printf "\e[2;f"$C"${BARRA:0:$N}"$F"\n" ; }

tput clear
apt-get install lynx -y 1> /dev/null 2> /dev/stdout
BPROG
apt-get install dialog -y 1> /dev/null 2> /dev/stdout
BPROG
ip2=$(lynx -dump ip.dnsexit.com)
BPROG
#cat -n /etc/issue |grep 1 |cut -d' ' -f6,7,8 |sed 's/1//' |sed 's/ //' > /etc/so #ALTERADO
OS=$(sed -n '1p' /etc/issue|cut -d " " -f1-3)
BPROG
printf "\e[4;f \033[1;33m- - - - -> \033[01;34mSeu sistema operacional:\033[0m $OS"
BPROG
printf "\e[5;f \033[1;33m- - - - -> \033[01;34mIP do Servidor:\033[0m $ip2"
BPROG
printf "\e[6;f \033[1;33m- - - - -> \033[01;34mDesenvolvedor:\033[0m Khromus"
BPROG
printf "\e[7;f Digite o ip do vps !" ; read ip
BPROG
if grep -iq 'ubuntu Xenial Xerus' <<< "$OS";then #ALTERADO VEJA: https://linuxconfig.org/how-to-check-ubuntu-version
BPROG
printf "\e[8;f \033[1;32mConfigurando, Aguarde ..."$F""
BPROG
printf "\e[9;f \033[1;32mSQUID É CONFIGURADO PARA TRABALHAR NAS PORTAS\033[0m 80, 8080, 8799, 3128"$F""
BPROG
printf "\e[10;f \033[1;32mSerá instalado um conjunto de scripts para gerenciamento da VPS ..."$F""
BPROG
apt-get update 1> /dev/null 2> /dev/null
BPROG
apt-get install squid3 -y 1> /dev/null 2> /dev/null
BPROG
apt-get install ufw -y 1> /dev/null 2> /dev/null
BPROG
fi


Se a RESPOSTA foi SATISFATóRIA, marque-a como A MELHOR . . .

att.:
Marcelo Olive







3. Re: Implementar barra de progresso em um sript

leonardo madeira
leonardomadeira

(usa Ubuntu)

Enviado em 15/11/2016 - 18:35h

Marcelo, uma dúvida: tem mais partes o script .... essa função BPROG tem q ser colocada abaixo de cada linha/função?


4. Re: Implementar barra de progresso em um sript

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 15/11/2016 - 18:53h

leonardomadeira escreveu:

Marcelo, uma dúvida: tem mais partes o script .... essa função BPROG tem q ser colocada abaixo de cada linha/função?


Justamente, após cada comando, chama "BPROG".
Coloquei no Teste a VAR BARRA com 90 caracteres,
O ideal e que conte quantos comandos tem o seu SCRIPT e faça os ajustes.
Por exemplo:
Script com 20 comandos.
Altere a var BARRA para 100 caracteres e a var "N" para "+5"
BARRA="####################################################################################################"
#A FUNÇãO BPROG sofreu uma pequena alteração, MOSTRA o "Número"
BPROG() { N=$((N+5)) ; sleep 0.25 ; printf "\e[2;f"$C"${BARRA:0:$N}$N%%"$F"\n" ; }

Note que para mostrar as mensagens na tela, usei o "printf" com a indicação da linha que deve imprimir, sempre na sequencia . . .

marcelo oliver








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts