Crie uma barra de progresso no bash lista as abordagens para obter uma barra de progresso , então vou me concentrar na parte Como falsificar aqui. Vou usar 2 segundos em vez dos seus 60 aqui apenas para testar, ajuste o valor sleep para suas necessidades exatas.
Usando dialog , whiptail ou zenity (GUI)
for i in {1..100}; do sleep 2; echo $i; done | dialog --gauge 'Running...' 6 60 0
Esse loop de for faz um loop 1 sobre os números de um a cem e echo s a cada 2 segundos, a saída é canalizada para dialog , que mostra o número como o progresso em uma barra de progresso. Essa abordagem também funciona para whiptail e zenity --progress (GUI). A saída de dialog é assim com uma barra de progresso colorida usando 'curses' no modo de texto:
Usandopv
for i in {1..100}; do sleep 2; echo; done | pv -pWs100 >/dev/null
Esse loop é muito semelhante, apenas que imprime apenas uma nova linha (= 1 byte de dados) a cada 2 segundos, pv é então informado para esperar exatamente 100 bytes de dados e mostra p barra de rogress. Em uma janela de terminal com uma largura de 80 caracteres, a saída é assim:
[===============> ] 22%
Construindo sua própria barra de progresso
Com um loop simples, você também pode construir sua própria barra de progresso. Aqui estão alguns exemplos que imprimem 100 # em uma linha, uma por 2 segundos:
# number signs only
$ for i in {1..100}; do sleep 2; echo -n \#; done; echo
####################################################################################################
# with progress in % on the right
$ for i in {1..100}; do sleep 2; printf "%0.s#" $(seq 1 $i); printf "%0.s " $(seq $i 100); printf "%3d%%\r" "$i"; done; echo
###################################################### 54%
# with progress in % on the left
$ for i in {1..100}; do sleep 2; printf "%3d%% " "$i"; printf "%0.s#" $(seq 1 $i); printf "%0.s " $(seq $i 100); printf "\r"; done; echo
39% #######################################
1 Veja, um Polyptoton !

