1

好的,我想知道是否有一种方法可以使用 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 产生了兴趣,但无论如何,希望你能明白我想要弄清楚的要点。希望这是可行的,如果没有,我只需要想出别的办法。

4

1 回答 1

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

您可能需要使用沙盒

于 2013-02-04T18:07:33.503 回答