1
我正在创建一个数组并循环遍历数组,但由于某种原因,foreach命令正在向索引添加引号。TCL foreach正在向我的索引添加引号
我有以下代码初始化数组:
# Fill the region array for the 8 regions.
set regionBBox(SDQ1) "11262.000 1558.700 15489.000 1663.000"
set regionBBox(SDQ2) "6910.000 1558.700 11137.000 1663.000"
set regionBBox(SDQ3) "1550.000 7929.260 1665.000 12159.000"
set regionBBox(SDQ4) "1550.000 12283.820 1665.000 16511.000"
set regionBBox(SDQ5) "6654.000 21241.580 11393.000 21352.000"
set regionBBox(SDQ6) "11518.000 21241.580 16257.000 21352.000"
set regionBBox(SDQ7) "21246.000 11773.100 21354.005 15999.000"
set regionBBox(SDQ8) "21246.000 7418.540 21354.000 11647.000"
时,我得到了整个名单无报价显示:
lsort [array names regionBBox]
结果:
SDQ1 SDQ2 SDQ3 SDQ4 SDQ5 SDQ6 SDQ7 SDQ8
但是,当我通过数组遍历每个$ id的值包含双引号。
foreach $id [lsort [array names regionBBox]] {
echo "Index = $id"
set bbox $regionBBox($id)
}
结果:
Index = "SDQ6"
Error: can't read "regionBBox("SDQ6")": no such element in array
那么,为什么的foreach加上引号?我如何避免添加引号?
卫生署!愚蠢的菜鸟错误。我有$ id,我应该只有id。 – LivingDust
请注意'echo'是一个shell命令。它将在交互式tclsh会话中按照您的预期工作,但不会在tcl脚本中运行。 –