2017-06-13 2 views
1

Ich habe ein Lua-Skript A.lua, das B.Lua durch Angabe von package.path aufruft. In B.Lua muss es seinen absoluten Weg benutzen. Meine Frage ist, wie bekomme ich den absoluten Weg von B.Lua in B.Lua? "PWD" funktioniert nicht, da PWD nur das aktuelle Arbeitsverzeichnis zurückgibt. Debug funktioniert auch nicht, da B.Lua kein Aufruf von der Befehlszeile ist. Hat jemand eine bessere Lösung?So erhalten Sie den absoluten Pfad einer Lua-Skript-Datei

+0

In "B.Lua" zweiten Vararg Argument ist der Pfad: 'local _, path = ...; drucken (Pfad) '. Aber der Pfad ist nicht absolut, und das funktioniert in Lua 5.1 nicht –

Antwort

1

Wenn Sie irgendwo eine Datei in package.path finden, die require finden kann, dann können Sie den Pfad auch einfach mit package.searchpath ermitteln.

Wenn "foo.bar.baz" ist der Name, unter dem require die Datei laden, dann

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

Sie den Weg bekommt.

Dies funktioniert in Lua 5.2 oder neuer und LuaJIT auch.

Verwandte Themen