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腳本中運行。 –