【问题标题】:require os, Am i missing somehting?需要操作系统,我错过了什么吗?
【发布时间】:2019-03-02 04:44:48
【问题描述】:

我来自 C 家族的“主流”语言,目前正在 Lua 中尝试。

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

看到失败的命令os.execute("start "URL"),说“os is undefined”。

嗯,似乎是合乎逻辑的。然后我研究了原因并发现了“require”关键字(它似乎充当了 LoadLibrary 或 kind)。

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

我显然怀疑我缺少指向该“os”描述的“文件”或路径。而且很明显,没有人发现有足够的用处来解释或要求它。

谁能详细解释一下需要什么我应该添加哪个文件(如果我真的需要?)。

如果有人也有在线课程给我建议,我会欣然接受。我觉得我错过了很多基础知识,这真的不是“尝试升级”的友好语言

【问题讨论】:

  • 您的编程环境故意禁用os 库以限制访问文件和运行外部程序。否则,require("os") 应该可以工作。
  • 没有办法解决?或者另一种启动 URL 的方式?还是脚本?或者当前文件夹中的任何类 C 程序?甚至是 Windows 服务?
  • 如果您的环境禁用了它,则不会。对我来说这是一件好事;如果某事被禁止,那么它保持被禁止,没有办法绕过它。但是和 Lua 一样,请告诉我们你的环境是什么。什么版本的Lua?什么软件运行它?什么是操作系统?
  • @EgorSkriptunoff 提交编辑时,请在评论字段中说明为什么您进行编辑“评论:添加了相关标签。” 不是很有用如果从问题中不清楚为什么它是相关的,请给审阅者 - 我们在审阅队列中看不到 cmets 或答案及其 cmets
  • @Kianii - 您不能打开浏览器页面。但是你可以用你的文本打开消息框窗口,见docs

标签: lua require world-of-warcraft


【解决方案1】:

标准 Lua 环境有 os 可用,而无需使用 require,因此您必须使用非标准 Lua 环境。

当 Lua 嵌入到不同的软件中时,对 os 等库的访问通常会被删除,因为这是一个安全风险。 (例如,如果您允许在网络服务器上使用 Lua 的任何人完全访问 os 库,这意味着任何人都可以在该服务器上运行随机 shell 命令。)

如果您的 Lua 环境已以这种方式更改,那么您很有可能永远无法使用 os 库,无论您做什么。

【讨论】:

  • 根据您的解释,由于我们所说的软件是魔兽世界,因此它被禁用的可能性约为 100%。不知道我如何(如果可能的话合法地)避免这个问题?
  • @Kianii 你不能 魔兽世界的脚本不能运行随机的 shell 脚本是有充分理由的。
  • 当然,这对我来说似乎是合乎逻辑的。但我并不想运行可能是非法或危险的“随机 shell 脚本”。只是试图打开浏览器并启动一个 URL。这不是在魔兽世界的背景下。最终目的是在聊天中输入斜杠命令,以伪和服务器作为参数,以获取网站上玩家的个人资料。似乎是一项非常基础的工作,所以我很惊讶这可能是不可能的。
  • 从游戏的角度来看,它一个随机的shell脚本。如果您可以打开浏览器,您也可以关闭计算机或将主文件夹上传到您的网站。很遗憾,这打破了你的想法,但这是一个很好的(唯一正确的)设计决定。 Lua 强大的原因之一是你可以限制它。不要期望每个 Lua 环境都是一样的;有些人可以做任何你想做的事,有些人,比如这个,把你锁在他们的领域里,不让你做不相关的事情。
猜你喜欢
  • 2016-10-03
  • 1970-01-01
  • 2019-04-07
  • 2012-02-06
  • 2014-11-25
  • 2011-02-16
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多