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

Nar*_*rek 4 tcl

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

#first tcl file

source second.tcl
Run Code Online (Sandbox Code Playgroud)

我想从first.tcl控制second.tcl的流程,我读到tcl源不接受参数.我想知道我怎么做.

bmk*_*bmk 9

source不接受任何其他参数.但是您可以使用(全局)变量来传递参数,例如:

# first tcl file
set ::some_variable some_value
source second.tcl
Run Code Online (Sandbox Code Playgroud)

第二个TCL文件可以引用变量,例如:

# second tcl file
puts $::some_variable
Run Code Online (Sandbox Code Playgroud)

备注:获取
文件意味着源脚本的内容在当前上下文中执行.这意味着源脚本可以访问该上下文中存在的所有变量.以上代码与:

# one joint tcl file
set ::some_variable some_value
puts $::some_variable
Run Code Online (Sandbox Code Playgroud)


kos*_*tix 6

关于"::"的事情 - 请看这里的解释(对不起,我没有足够的代表来发表评论).

我还应该补充一点,原始问题讨论的问题看起来很奇怪:似乎在第二个源文件中提供一个特定的过程可能会更好,该过程将建立一个与该脚本定义的状态有关的状态.就像是:

source file2.tcl
setup_state $foo $bar $baz
Run Code Online (Sandbox Code Playgroud)

[source]根据一些全局变量做出不同的行为看起来对我来说太模糊了.当然,你可能有正当理由这样做,但无论如何......