regsub -all "\\\\033" $cmd "\033" cmd
[regsub -all "\\\\c" $cmd "" cmd]
regsub -all "\\\\$i" $cmd [lindex $exp_out $i] cmd
有人可以解释这三个陈述的含义吗? 它们是三种不同的陈述。
答案 0 :(得分:1)
regsub -all "\\\\033" $cmd "\033" cmd
这将使用ASCII ESC 字符替换所有反斜杠后跟033
的实例。它从cmd
变量读取要处理的字符串,并将其写回该变量。
[regsub -all "\\\\c" $cmd "" cmd]
这将使用空字符串替换所有反斜杠后跟c
的实例(有效地删除它)。它会更新cmd
变量。它在其调用上下文中替换了执行的替换次数。
regsub -all "\\\\$i" $cmd [lindex $exp_out $i] cmd
这个有点复杂。对于存储在i
变量中的特定数字索引,它将{{1}中的列表中的i
'元素(从0开始)替换为反斜杠的所有实例,后跟索引。 }。它会更新exp_out
变量。