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

时间:2014-10-03 22:29:27

标签: string tcl expansion

要使用Tcl版本8.5跟进earlier问题,我有:

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 }

我从puts得到的是:

-verilog_define GIT_VERSION=${git_ver}

但是如何获取变量git_ver的字符串表示形式?

1 个答案:

答案 0 :(得分:1)

使用双引号代替大括号:

lappend defs "-verilog_define GIT_VERSION=${git_ver}"

或者,您可以使用subst命令使大括号像双引号:

lappend defs [subst {-verilog_define GIT_VERSION=${git_ver}}]

在Tcl中,双引号和大括号做同样的事情 - 组字。唯一的区别是双引号执行替换和括号不是。