2017-06-13 599 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。