Enquanto muitos de nós sempre pensamos em uma maneira mais fácil de rastrear uma operação a ser concluída. Bem, existem muitas ferramentas por aí que podem ajudá-lo a fazer esse curl, pip, apt são alguns exemplos comuns das ferramentas que exibirão uma barra de progresso extravagante para que você saiba onde está a operação no momento.
A vida geralmente se torna difícil quando se trata de scripts de shell, loops, condições e execuções de comando, especialmente. Vamos entender o que precisamos e então veremos alguns exemplos.
A necessidade:
a. Algo que leva / calcula não de tarefas.
b. Algo que exibe tarefas concluídas e pendentes.
c. Algo que exibe o percentil de conclusão ou eta.
d. Algo que parece muito além de #a a #d
Vamos tentar algo.
#!/bin/bash
# code is color code of the bar.
code=15
# function to calculate percentile completion
calcPer()
{
# declare a variable to count on
local c=$1
# calculate percentile
per=$(echo "scale=2;$c / $n * 100"|bc -l)
}
# start loop
# n=no of tasks
# So, if you are processing a file n=no of lines in that file.
#
while [ $n -ge $i ]; do
calcPer $i
# call a small sleep to let people see the beauty of progress bar in action.
sleep .5
# print the color every time a task is done.
printf "|\e[48;5;${code}m%${per%.*}s\e[31m${per%.*}"
# make room for more, so escape the return.
printf '%s\e[0m%s\r' "%" "|"
# finally increament the counter for the next task in pipeline.
echo $((i+=1)) >/dev/null
done
printf '\n'
Agora vamos verificar o resultado: