是否可以通过makefile将变量传递给Tcl ?



我可能需要一些帮助。

这个场景是,假设我有一个TCL脚本"test.tcl",它包含如下内容,

set condition true
if {$condition==true} {
puts "Message1"
} elseif {$condition==false} {
puts "Message2"
}
然后我有另一个makefile来简单地运行这个TCL脚本,其中
runScript:
tclsh test.tcl

当我用

运行时
make runScript

有没有可能变量">条件";内部TCL脚本可以以某种方式由Makefile提供,而不是在TCL脚本本身编写?

任何帮助都会很感激。谢谢你!

如果您在命令行调用该变量时找到了将该变量传递给脚本的方法,那么您可以在makefile中使用相同的方法。这与make或make文件无关,这只是一个TCL问题。

谷歌"设置tcl变量从命令行"把我带到这个页面:https://www.tcl.tk/man/tcl8.5/tutorial/Tcl38.html

所以,像这样的东西可能会起作用:

$ cat Makefile
runScript:
myvalue=true tclsh test.tcl
$ cat test.tcl
set condition $env(myvalue)
...

但是我写TCL的日子已经离我很远很远了。

将信息传递给Tcl脚本(或任何命令行程序)的通常方法是通过参数:

Makefile

CONDITION = true
runScript:
tclsh test.tcl ${CONDITION}

在Tcl脚本中,可以通过argv变量访问命令行参数。

test.tcl

if {[llength $argv] != 1} {
puts stderr "Usage: $argv0 <condition>"
exit 1
}
lassign $argv condition

最新更新