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の数値を出力するカウントスクリプトカウントされている行のみが削除されるため、たとえば、美しい「プログレスバー」が表示されます。

回答

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

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

echo -n 

改行を防ぎます。

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

回答

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

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です