Tcl 如何通过传递参数来获取脚本文件的源代码?
假设我有一个tcl脚本,我想将一些参数传递给第二个脚本文件,该文件源于第一个tcl:Tcl 如何通过传递参数来获取脚本文件的源代码?,tcl,Tcl,假设我有一个tcl脚本,我想将一些参数传递给第二个脚本文件,该文件源于第一个tcl: #first tcl file source second.tcl 我想从first.tcl控制second.tcl的流,我读到tcl source不接受参数。我不知道该怎么办。source不接受任何附加参数。但您可以使用(全局)变量传递参数,例如: # first tcl file set ::some_variable some_value source second.tcl 第二个TCL文件可以引用
#first tcl file
source second.tcl
我想从first.tcl控制second.tcl的流,我读到tcl source不接受参数。我不知道该怎么办。
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
关于“:”这件事——请看解释(对不起,我还没有足够的代表留下评论)
我还应该补充一点,原来的问题讨论了一个似乎很奇怪的问题:似乎最好在第二个源文件中提供一个特定的过程,该过程将设置与该脚本定义的内容相关的状态。
比如:
source file2.tcl
setup_state $foo $bar $baz
让
[source]
根据一些全局变量做出不同的行为对我来说太模糊了。当然,你可能有正当的理由这样做,但无论如何…正是如此!但请解释一下“:”的含义。我可以省略吗?它是干什么用的?在那个例子中,你可以省略:
。这仅仅意味着这个变量是在全局名称空间中创建的。我完全同意,通常最好在源代码脚本中指定一个过程,并用参数调用该过程。甚至用参数来源代码文件意味着什么?如何处理源文件中的参数?