如何在Tcl扩展替换中获取字符串



要使用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中,双引号和大括号起着相同的作用——对单词进行分组。唯一的区别是双引号执行替换,而大括号不执行。

最新更新