for i in {1..5};do
echo $i/5
done
がエコーされますバッシュ:上書き前のエコーコマンド
1/5
2/5
3/5
4/5
5/5
それはすべての繰り返しで、前のエコー/印刷ラインを上書きすることは可能ですか?プログラムは1/5
を返し、1/5
の代わりに2/5
を返し、次に3/5
などを返す必要があります。プログラムの最後には、5/5
を含む1行だけを残す必要があります。
for i in {1..5};do
echo $i/5
done
がエコーされますバッシュ:上書き前のエコーコマンド
1/5
2/5
3/5
4/5
5/5
それはすべての繰り返しで、前のエコー/印刷ラインを上書きすることは可能ですか?プログラムは1/5
を返し、1/5
の代わりに2/5
を返し、次に3/5
などを返す必要があります。プログラムの最後には、5/5
を含む1行だけを残す必要があります。
これは、キャリッジリターン\r
を使用して達成することができます。
for i in {1..5}; do
printf "%d/5\r" "$i"
sleep 1
done
あなたは、端末の更新を見ることができるように、私はsleep
への呼び出しを追加しました。
端末が出力を上書きしないように、最後に改行を印刷する必要があることに注意してください。
行を上書きするには、キャリッジリターン\r
を使用し、改行を使用しないでください。
は、例えば、試してみてください。彼らは再び更新する前に、あなたは数字を時間を見てきたように、
for i in {1..5}; do printf '\r%s/5' $i; sleep 0.1; done
をsleep
コマンドが追加されました。