Exibindo e atualizando um contador no bash

Acho que é algo assim: (Fedora14 / bash)

#!/bin/bash for i in {0..10..1}; do echo -e "$i""\c" echo -e "\n\r" sleep 1 done 

Mas não funciona. Objetivo: assim, mas sem “limpar”:

#!/bin/bash for i in {0..10..1}; do echo -e "$i" sleep 1 clear done 

Então, um script de contagem que não exclui a tela inteira para gerar +1 número, em vez disso apaga apenas a linha, onde está a contagem, para que pudesse haver, por exemplo: uma “barra de progresso” beatifull.

Resposta

for i in {0..15}; do echo -ne "$i""\r"; sleep 1; done; echo 

Você não precisa de ..1 para a largura de passo 1 que é o padrão.

echo -n 

evita quebras de linha.

\r está voltando ao início da linha (sem nova linha – \n), e melhor do que antes ” \ b “para retroceder um único caractere, desajeitado, se você tiver mais de um dígito-números. Obrigado a rozcietrzewiacz.

Resposta

Você está procurando algo assim?

for i in {1..10}; do printf "\r%2d" $i sleep 1 done printf "\n" 

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *