标签: tcl
我在脚本中使用lappend,做这样的事情:
lappend
set element_name a[0] lappend mylist $element_name
我看到如果$element_name中包含[],例如a[0]。 lappend为它添加花括号。就像我打印$mylist一样,它会给出:
$element_name
[]
a[0]
$mylist
{a[0]}
我如何摆脱那些花括号?我只想要a[0]。
答案 0 :(得分:1)
如果使用join将列表转换为字符串,则大括号会消失:
join
puts [join $mylist] # => a[0]
或者如果您单独打印元素:
foreach elem $mylist {puts $elem}
列表的字符串表示需要引用包含对解释器有意义和/或干扰列表结构的字符的元素。括号(在它们之间有一个脚本)通常被解释为命令替换,并且为了防止解释器对其进行评估,您的元素被包装在大括号中。将列表元素转换为字符串后,这将不再是一个问题,您存储在其中的文本将不再被包裹。
文档:foreach,join,puts