-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
命令,让你有时间看这些数字,他们再次更新之前。