web-dev-qa-db-ja.com

bashでのカウンターの表示と更新

これは次のようなものだと思います:(Fedora14/bash)

#!/bin/bash

for i in {0..10..1}; do echo -e "$i"'\c'
echo -e "\n\r"
sleep 1
done

しかし、それは機能しません。目的:このように、しかし「明確」なし:

#!/bin/bash

for i in {0..10..1}; do echo -e "$i"
sleep 1
clear
done

したがって、画面全体を削除せずに+1数を出力するカウントスクリプトではなく、カウントが行われている行のみが削除されるため、美しい「進行状況バー」などが存在する可能性があります。

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

デフォルトのステップ幅1に..1は必要ありません。

echo -n 

改行を防ぎます。

\rは行頭に戻ります(改行なし-\n)、1つ以上の桁数がある場合は、以前使用していた1文字をバックステップするために以前使用していた「\ b」よりも便利です。 rozcietrzewiaczに感謝します。

11
user unknown

このようなものをお探しですか?

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