如何通过传递参数来获取脚本文件?

时间:2011-05-10 11:49:51

标签: tcl

假设我有一个tcl脚本,我想将一些参数传递给第二个脚本文件,该文件来自第一个tcl:

#first tcl file

source second.tcl

我想从first.tcl控制second.tcl的流程,我读到tcl源代码不接受参数。我想知道我当时能做些什么。

2 个答案:

答案 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]表现不同看起来对我来说太模糊了。当然,你可能有合理的理由这样做,但无论如何......