2014-09-28 88 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