-1
for i in {1..5};do
echo $i/5
done
將回聲擊:覆蓋先前echo命令
1/5
2/5
3/5
4/5
5/5
是否有可能覆蓋在每次迭代之前的迴盪/印刷行?該程序應回顯1/5
,然後2/5
而不是1/5
,然後3/5
等。在程序結束時,只應該留下一行包含5/5
的行。
for i in {1..5};do
echo $i/5
done
將回聲擊:覆蓋先前echo命令
1/5
2/5
3/5
4/5
5/5
是否有可能覆蓋在每次迭代之前的迴盪/印刷行?該程序應回顯1/5
,然後2/5
而不是1/5
,然後3/5
等。在程序結束時,只應該留下一行包含5/5
的行。
這可以用回車\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
命令,讓你有時間看這些數字,他們再次更新之前。