在Lua中从外部源中运行脚本指令。

我想知道是否有一种方法可以用 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 脚本,然后关闭。

这是针对 Minecraft 的,但无论如何,希望你明白我想要解决的问题。希望这是可行的,如果不行,我就得想出其他办法。

点赞
用户1442917
用户1442917

为了加载和执行 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)
-- 确保你读取了远程代码运行的安全隐患
-- f() -- 基于远程代码调用函数

你可能需要使用 沙盒

2013-02-04 18:07:33