有时需要它来获取脚本的当前路径。有什么方法可以做到这一点?
在对脚本进行评估时(但不一定在调用其过程时),当前脚本名称(严格来说,是传递给source
C或C API等效项Tcl_EvalFile()
以及相关的名称)的结果info script
;强烈建议将其标准化为绝对路径名,以免任何调用cd
都改变解释。
需要信息的脚本倾向于在自己内部放置以下内容:
# This is a *good* use of [variable]…
variable myLocation [file normalize [info script]]
然后,他们可以轻松地检索值(或从中派生的东西):
proc getResourceDirectory {} {
variable myLocation
return [file dirname $myLocation]
}
其他常见位置是:
$::argv0
这是“主”脚本(如果等于,您正在评估主脚本info script
)[info nameofexecutable]
这是Tcl解释程序本身(通常argv[0]
在C级别)[info library]
Tcl自己的库脚本所在的位置$::tcl_pkgPath
这是安装软件包的目录的Tcl列表$::auto_path
这是在其中搜索脚本的目录的Tcl列表(包括软件包!软件包路径用于对此进行初始化)。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句