假设我有一个tcl脚本,我想将一些参数传递给第二个脚本文件,该文件来自第一个tcl:
#first tcl file
source second.tcl
我想从first.tcl控制second.tcl的流程,我读到tcl源代码不接受参数。我想知道我当时能做些什么。
答案 0 :(得分:8)
source
不接受任何其他参数。但是你可以使用(全局)变量来传递参数,例如:
# first tcl file
set ::some_variable some_value
source second.tcl
第二个TCL文件可以引用该变量,例如:
# second tcl file
puts $::some_variable
注:
获取文件意味着源脚本的内容在当前上下文中执行。这意味着源脚本可以访问该上下文中存在的所有变量。上面的代码与:
# one joint tcl file
set ::some_variable some_value
puts $::some_variable
答案 1 :(得分:6)
关于“::”的事情 - 请参阅解释here(对不起,我还没有足够的代表来发表评论)。
我还应该补充一点,原始问题讨论的问题似乎很奇怪:似乎在第二个源文件中提供一个特定的过程可能会更好,该过程将建立一个与定义的属性相关的状态。那个剧本。 类似的东西:
source file2.tcl
setup_state $foo $bar $baz
基于某些全局变量使[source]
表现不同看起来对我来说太模糊了。当然,你可能有合理的理由这样做,但无论如何......