在使用Tcl开发测试脚本的时候,遇到了一种情况就是需要一个字符串包含空格。
例如:
$ set var1 "abc def"
$ set var2 "$var1 we are test chars."
这个时候的var2的值是: {{abc def} we are test chars.}
由于在脚本中需要用到split:
$ set var3 [split $var2]
这个时候var2会被以空格符为间隔符 split,这样的结果会破坏var1的结构,这样var3 的结果中不会有var1的结构,如果想在var3 中保留var1的结构:{abc def} we are test chars.
使用ASCII码和subst可以解决这个问题:
$ set var1 {abc\x20def} ;#这个地方必须使用大括号,否则ASCII码会被提前替换
$ set var2 "$var1 we are test chars."
$ set var3 [subst [split $var2]]
{abc def} we are test chars.
这就是想要的结果。