我有一个lua脚本A.lua,它通过指定package.path来调用B.lua。在B.lua中,它必须使用它的绝对路径。我的问题是,我怎样才能在B.lua中获得B.lua的绝对路径? “PWD”不起作用,因为PWD只返回当前的工作目录。 debug也不起作用,因为B.lua不是从命令行调用的。谁有更好的解决方案?
答案 0 :(得分:1)
如果package.path
中require
能够找到某个文件,那么您也可以使用package.searchpath
轻松获取路径。
如果"foo.bar.baz"
是require
将加载文件的名称,那么
package.searchpath( "foo.bar.baz", package.path )
--> (e.g.) "/usr/share/lua/5.3/foo/bar/baz.lua"
让你走上正轨。
这适用于Lua 5.2或更新版本以及LuaJIT。