要使用Tcl 8.5版来跟进前面的问题,我有:
set defs {}
array set options $::argv
set git_ver $options(-git_ver)
lappend defs {-verilog_define GIT_VERSION=${git_ver}}
foreach i $defs { puts $i }
我从看跌期权中得到的是:
-verilog_define GIT_VERSION=${git_ver}
但是如何获得变量git_ver的字符串表示呢?
使用双引号而不是大括号:
lappend defs "-verilog_define GIT_VERSION=${git_ver}"
或者,您可以使用subst
命令使大括号的作用类似于双引号:
lappend defs [subst {-verilog_define GIT_VERSION=${git_ver}}]
在Tcl中,双引号和大括号起着相同的作用——对单词进行分组。唯一的区别是双引号执行替换,而大括号不执行。