我可能需要一些帮助。
这个场景是,假设我有一个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