调用 os,我漏掉什么了吗?

我来自 C 家族“主流”语言,现在尝试 Lua。

我编写了一个简单的代码,检查用户输入并尝试在默认浏览器中打开一个 URL(由用户输入构建)。

看到 os.execute("start "URL") 命令失败了,说“os 未定义”。

好吧,这似乎很合理。然后我研究了原因并发现了“require”关键字(似乎作为 LoadLibrary 或者类似的作用)。

这就是我迷失的地方! 所有论坛都说“是的,只要添加 require os 就可以了”。但实际上它失败了!

我显然怀疑我漏掉了一个指向“os”描述的“文件”或路径。显然,这是如此显而易见,以至于没有人觉得有必要解释或者要求它。

有人能够详细解释一下 require 是什么吗?如果我真的需要,我应该添加哪个文件(如果需要)?

如果有人还有在线教程要建议我,我将非常感激。我感觉我缺少很多基础知识,这对于一个尝试进阶的友好语言来说真的不太友好。

点赞
用户5287638
用户5287638

标准 Lua 环境中可以直接使用 os,无需使用 require。所以,你可能在使用一个非标准的 Lua 环境。

当 Lua 嵌入到不同的软件中时,通常会移除对诸如 os 等库的访问权限,因为这样做会存在安全风险。(例如,如果在 Web 服务器上允许任何人使用 Lua 来完全访问 os 库,那么意味着任何人都可以在该服务器上运行随机的 shell 命令。)

如果你的 Lua 环境已经被这种方式修改,那么你可能永远无法使用 os 库,无论你做什么。

2018-09-26 13:12:37