要使用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的字符串表示形式?
答案 0 :(得分:1)
使用双引号代替大括号:
lappend defs "-verilog_define GIT_VERSION=${git_ver}"
或者,您可以使用subst
命令使大括号像双引号:
lappend defs [subst {-verilog_define GIT_VERSION=${git_ver}}]
在Tcl中,双引号和大括号做同样的事情 - 组字。唯一的区别是双引号执行替换和括号不是。