我有一个名为test7.tcl的文件:
namespace eval ::dai {
variable name "ratzip"
variable birthday "1982"
proc hello {} {
variable name
variable birthday
puts "Hello, I am $name birthday is $birthday"
}
}
并且我想以这种方式将此文件来源到另一个文件test8.tcl:
source test7.tcl
::dai::hello
但是它给了我错误:无法读取文件“test7.tcl”:没有这样的文件或目录
但是这两个文件在同一个文件夹下,发生了什么?
最佳答案
要获取与当前正在执行的脚本位于同一目录中的文件,请使用以下命令:
source [file join [file dirname [info script]] "test7.tcl"]
请注意,这在外部脚本(在您的情况下为test8.tcl)中定义的过程内部不起作用,因为它们通常在源代码完成后调用。如果您是这种情况,最简单的解决方法是将
info script
的输出保存在外部脚本的变量中(或立即获取所有文件,而不是懒惰地获取最终的最佳方法)。关于tcl - 有关Tcl中来源的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6508453/