Você está na página 1de 5

BARRA DE PROGRESSO &

THROBBER DO
Barra de Progresso & Throbber Do

Uma barra de progresso é um elemento de controle gráfico usado para visualizar a progressão de uma operação estendida
do computador, como um download, uma transferência de arquivos ou uma instalação. Às vezes, o gráfico é acompanhado
por uma representação textual do progresso em um formato percentual.

Para fazer uma simples barra de progresso, usaremos o comando echo e as opções -n (utilizado para NÃO exibir a
mensagem numa nova linha) e -e (utilizado para interpretar barras) em conjunto: echo -ne , ou seja, qualquer elemento será
adicionado ao lado do que já existe na tela e não numa nova linha. E lógico usaremos um loop para criar a barra.

Ideia Inicial
Essa seria uma barra de progresso bem simples e muito básica

#!/bin/bash
x=1
while [[ "$x" -lt "100" ]]; do
echo -ne "X"
sleep 1
let x=x+1
done
1
Barra de Progresso & Throbber Do

Adicionando alguns recursos a mais como o backspace \b para limpar, chegaríamos a esse ponto .
Lembrando que a utilização para determinada tarefa, isso dependerá da tarefa.

X=1
echo -ne "[ =>"
while [[ "$x" -le "100" ]]; do
if [[ "$x" -lt "10" ]];then
echo -ne " \b\b\b\b=>$x%"
eles
echo -ne " \b\b\b\b\b=>$x%"
\b\b\b\b\b
fi
sleep 0.08
let x=x+1
done
echo -ne "\b\b\b\b\b\b\b=>]"
echo -e "\nCompleto!"

2
Barra de Progresso & Throbber Do

Um desenvolvimento mais recente é a barra de progresso indeterminado , que é usada em situações em que a extensão da tarefa é
desconhecida ou o progresso da tarefa não pode ser determinado de uma maneira que possa ser expressa como uma
porcentagem. Esta barra usa movimento ou algum outro indicador para mostrar que o progresso está ocorrendo, ao invés de usar o
tamanho da porção preenchida para mostrar a quantidade total de progresso, tornando-se mais como um throbber do que uma
barra de progresso. Há também indicadores de progresso indeterminados, que não são em forma de barra.
x=1
while [[ "$x" -lt "100" ]]; do
if [[ "$x" -lt "50" ]]; then
echo -ne "\b X"
if [[ "$x" -lt "30" ]]; then
sleep 0.01
else
sleep 0.03
fi
else
echo -ne " \bX \b\b\b"
if [[ "$x" -lt "70" ]]; then
sleep 0.01
else
sleep 0.03
fi
fi

let x=x+1
if [[ "$x" -gt "98" ]]; then
x=1
fi
done

3
Barra de Progresso & Throbber Do

Deixando ele mais sexy o resultado seria mais ou menos assim:


setterm -cursor off
echo -e "\e[37;1m\n Aguarde carregando...\e[m"
echo -ne " "
x=1
function ctrl_c() {
echo
setterm -cursor on
exit 130
}
trap ctrl_c SIGINT SIGTERM
while [[ "$x" -lt "100" ]]; do
if [[ "$x" -lt "50" ]]; then
echo -ne "\b\e[30;1m█\e[m█"
if [[ "$x" -lt "30" ]]; then
sleep 0.01
else
sleep 0.03
fi
else
echo -ne " \b█\e[30;1m█\e[m\b\b\b"
if [[ "$x" -lt "70" ]]; then
sleep 0.01
else
sleep 0.03
fi
fi
let x=x+1
if [[ "$x" -gt "98" ]]; then
x=1
fi
done

Você também pode gostar