考虑以下代码:
puts "What show command would you like to execute?"
set cmd [gets stdin]
proc makeLC {str} {
puts "begin"
puts $str
set lStr [string tolower $str]
set lStr [string trim $lStr]
puts "after low and trim"
puts $lStr
set lenStr [string length $lStr]
for {set i 0} {$i < $lenStr} {incr i} {
puts [string index $lStr $i]
}
return $lStr
}
set lcmd [makeLC $cmd]
当用户键入“test12345”然后退格显示“test123”然后添加“67”以最终显示“test12367” puts $lStr 返回“test12367”但“for”循环将显示“test12345 67”“12345”之间的空格我相信“67”是“\b\b”。
为什么不一致?
以及如何确保在传递 $lStr 时分配了“test12367”而没有分配“test12345 67”