for (( i = 60; i != 0; i--))
do
echo $i
sleep 1
done
像上面这个段代码,如果加一个清除的话会清除整个屏幕,怎么清除当前行然后重新打印该行呢?.或者有什么办法能有相同效果
如何清除当前行而不是整个屏幕.
-
- 帖子: 51
- 注册时间: 2008-06-01 12:31
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
Re: 如何清除当前行而不是整个屏幕.
代码: 全选
for (( i = 60; i != 0; i--))
do
echo -en "\r$i "
sleep 1
done
- icyomik
- 帖子: 76
- 注册时间: 2010-10-30 17:52
Re: 如何清除当前行而不是整个屏幕.
谢谢,学习了。astolia 写了:运行时请直接复制代码: 全选
for (( i = 60; i != 0; i--)) do echo -en "\r$i " sleep 1 done
-
- 帖子: 6548
- 注册时间: 2008-10-31 22:12
- 系统: 践兔
- 联系:
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
Re: 如何清除当前行而不是整个屏幕.
why?在我看来,\e才是能不用就不用的tusooa 写了:别\r
echo -en "\e[1G$i\t"
\t占位的。防止前面的没被清除。
-
- 帖子: 53
- 注册时间: 2006-10-21 8:05
Re: 如何清除当前行而不是整个屏幕.
个人觉得,\r之后再打一排空格比较靠谱。。。
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 如何清除当前行而不是整个屏幕.
先回车,再清除到行尾
代码: 全选
echo -e "\r\e[K"