yourcommand | { I=0; while read; do printf "$((++I))\r"; done; echo ""; }
Ou coloque a seção entre colchetes em um script de shell. Note que isto só funciona se o seu shell realmente suportar o operador de pre-incremento, como bash ou ksh93 ou zsh. Caso contrário, você terá que incrementar $I
e depois imprimi-lo (como em I=$((I+1));printf...
). Além disso, se printf
não for embutido em seu shell (ele é incorporado ao bash atual), você poderá usar echo -ne
ou print -n
para obter um melhor desempenho. Você só quer suprimir a nova linha e ter interpretado como um caractere de escape.