好的,我想知道是否有一种方法可以使用Lua从外部源运行脚本。无论是.txt格式的另一个文件,还是来自pastebin,你有什么,并运行代码并等待所述代码完成,然后继续使用该函数的其余部分。我完全不确定它是如何工作的,但这基本上就是我想要的想法,而不是真正的代码。
function runStuff()
print("checking for stuff")
run.script(derp.txt)
wait for script
if run.script == finished
continue program
elseif nil
print("looks like this script sucks.")
end
end
runStuff()
例如“derp.txt”包含的内容是:
function lookFile()
if herp.txt exists then
rename herp.txt to herp.lua
else
nil
end
end
lookFile()
我还是Lua的新手,所以我在这里编码就像一个白痴,但是你希望得到我的照片。我正在开发一个项目,它就像一个基于pastebin的存储库的安装程序包或者其他任何提供lua脚本的原始格式输出的地方,我将使用这个想法来调用脚本来运行外部。因此,当我提供该程序的“首次运行”版本时,它将调用一个lua脚本,该脚本将调用另一个lua脚本并安装该脚本,然后关闭。
这是为了我的世界,请注意。 ComputerCraft让我对Lua感兴趣,但无论如何,希望你能得到我想要弄清楚的东西。希望这是可行的,如果没有,我只需要想出其他的东西。
答案 0 :(得分:1)
要加载和执行Lua代码片段,您可以使用以下内容:
local http = require("socket.http")
local response, err = http.request("url to some Lua code")
if not response then error(err) end
local f, err = (loadstring or load)(response)
if not f then error(err) end
print("done with "..response)
-- make sure you read on (in)security implications of running remote code
-- f() -- call the function based on the remote code
您可能需要使用sandboxing。