2017-06-13 71 views
1

私はluaスクリプトA.luaを持っています。これはpackage.pathを指定してB.luaを呼び出します。 B.luaでは絶対パスを使用する必要があります。私の質問は、B.luaのB.luaの絶対パスを得るにはどうすればいいですか? PWDは現在の作業ディレクトリを返すだけなので、 "PWD"は機能しません。 B.luaはコマンドラインからの呼び出しではないので、debugもどちらも動作しません。誰もがより良い解決策を持っていますか?luaスクリプトファイルの絶対パスを取得する方法

+0

"B.lua"では、2番目の可変引数はパスです。 'local _、path = ...; print(パス) 'しかし、そのパスは絶対ではなく、これは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でも機能します。

関連する問題