tcl - lappend 向元素添加花括号

标签 tcl

我在脚本中使用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}

列表的字符串表示形式需要引用包含对解释器很重要和/或干扰列表结构的字符的元素。括号(中间有一个脚本)通常被解释为命令替换,并且为了防止解释器对其进行评估,您的元素被包裹在大括号中。一旦列表元素转换为字符串,这就不再是问题,并且您存储在其中的文本不再被包装起来。

文档:foreach , join , puts

关于tcl - lappend 向元素添加花括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31215321/

相关文章:

namespaces - TclOO : cross-object namespace export/import

php - 从 php 网页运行 Expect 时公布自定义终端大小

tcl - Modelsim仿真起止时间

tcl - 为什么花括号允许变量替换?

regex - Tcl 中的模式匹配

python - 在Windows上为python编译线程安全的tcl

tcl - Tcl 中 errorInfo 中的堆栈跟踪信息

variables - TCL:使用命名空间名称变量

tcl - 如何在 tcl/tk 中绑定(bind)鼠标悬停

tcl - 关于 Expect 中的 expect_out(buffer)