如何在声明tcl列表时使用变量的值

时间:2013-04-22 01:14:59

标签: tcl

是否可以在tcl列表声明中使用变量? 我有以下简单的例子:

set grape_color "green"

set produce_list {\
   { PRODUCE COLOR             REGION  }\
   { APPLE   "red"             TX }\
   { GRAPE   $grape_color      CA }\
}

puts $produce_list

代码的输出是:

{ PRODUCE COLOR             REGION  } 
{ APPLE   "red"             TX }
{ GRAPE   $grape_color      CA }

但是我希望列表中的“绿色”代替$grape_color

1 个答案:

答案 0 :(得分:5)

一种方法是使用list命令。

set grape_color green
set produce_list [list \
    [list PRODUCE COLOR        REGION] \
    [list APPLE   red          TX] \
    [list GRAPE   $grape_color CA]]

另一种方法是使用subst命令。

set grape_color green
set produce_list {
    { PRODUCE COLOR        REGION }
    { APPLE   red          TX }
    { GRAPE   $grape_color CA }
}
set produce_list [subst -nobackslashes -nocommands $produce_list]