2014-09-28 56 views
0

如何在同一行上重复打印某些内容? 也就是说一个百分比的计数器直到某个过程完成了? 我希望在xterm行上百分比数字不会滚动而倒数。如何打印控制字符

如果我做

puts -nonewline "10%" 
puts -nonewline "9%" 
puts -nonewline "8%" 
puts -nonewline "7%" 

我得到:

10%9%8%7%.... 

这看起来不正确的。

诀窍是什么?

感谢, 格特

+0

可能是'term'包可以帮助? – 2014-09-28 01:50:50

回答

2

你想要回车键将光标发送到该行的开头:

for {set i 10} {$i>0} {incr i -1} { 
    puts -nonewline [format "\r%2d%%" $i] 
    flush stdout 
    after 200 
}; puts "" 
+0

请记住在输出字符串的末尾添加一个或多个空格。否则,你最终会得到“10%”,然后“9 %%”,然后“8 %%”等。 – slebetman 2014-09-28 01:57:14

+0

这就是为什么我使用'format'和'%2d' – 2014-09-28 02:16:50