我在脚本中使用lappend
,执行如下操作:
set element_name a[0]
lappend mylist $element_name
我发现如果 $element_name
中包含 []
例如a[0]
。 lappend
为其添加花括号。就像如果我打印 $mylist
那么它会给出:
{a[0]}
如何去掉那些大括号?我只想要a[0]
。
最佳答案
如果使用 join
将列表转换为字符串,大括号就会消失:
puts [join $mylist]
# => a[0]
或者如果您单独打印元素:
foreach elem $mylist {puts $elem}
列表的字符串表示形式需要引用包含对解释器很重要和/或干扰列表结构的字符的元素。括号(中间有一个脚本)通常被解释为命令替换,并且为了防止解释器对其进行评估,您的元素被包裹在大括号中。一旦列表元素转换为字符串,这就不再是问题,并且您存储在其中的文本不再被包装起来。
关于tcl - lappend 向元素添加花括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31215321/