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