如何获取lua脚本文件的绝对路径

如何获取lua脚本文件的绝对路径,lua,Lua,我有一个lua脚本a.lua,它通过指定package.path调用B.lua。在B.lua中,它必须使用其绝对路径。我的问题是,如何在B.lua中得到B.lua的绝对路径?“PWD”不工作,因为PWD只返回当前工作目录。调试也不起作用,因为B.lua不是从命令行调用的。有谁有更好的解决方案吗?如果您在包的某个地方有一个require可以找到的文件路径,那么您也可以使用 如果“foo.bar.baz”是require将加载文件的名称,则 package.searchpath( "foo.bar.

我有一个lua脚本a.lua,它通过指定package.path调用B.lua。在B.lua中,它必须使用其绝对路径。我的问题是,如何在B.lua中得到B.lua的绝对路径?“PWD”不工作,因为PWD只返回当前工作目录。调试也不起作用,因为B.lua不是从命令行调用的。有谁有更好的解决方案吗?

如果您在
包的某个地方有一个
require
可以找到的文件路径,那么您也可以使用

如果
“foo.bar.baz”
require
将加载文件的名称,则

package.searchpath( "foo.bar.baz", package.path )
--> (e.g.) "/usr/share/lua/5.3/foo/bar/baz.lua"
让你知道路

这在Lua5.2或更高版本以及LuaJIT中都适用。

在“B.Lua”中,第二个vararg参数是路径:
local,path=。。。;打印(路径)
。但是路径不是绝对的,这在Lua5.1中不起作用