2017-06-13 604 views
1

我有一个lua脚本A.lua,它通过指定package.path来调用B.lua。在B.lua中,它必须使用它的绝对路径。我的问题是,如何才能在B.lua中获得B.lua的绝对路径?由于PWD只是返回当前工作目录,因此“PWD”不起作用。调试也不起作用,因为B.lua不是从命令行调用的。任何人有更好的解决方案如何获得lua脚本文件的绝对路径

+0

在“B.lua”第二个可变参数是路径:local _,path = ...;打印(路径)'。但是路径并不是绝对的,这在Lua 5.1中不起作用 –

回答

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。