【问题标题】:Run all Lua files in a directory运行目录中的所有 Lua 文件
【发布时间】:2011-10-22 01:01:54
【问题描述】:

假设我有文件main.lua,在一个子目录中我有一系列我想运行的 Lua 脚本。有没有办法在普通的 Lua 中运行子目录中的所有脚本——也就是说,不需要加载任何外部模块或包?据我所知,requiredofile 仅适用于单个文件,我希望能够执行类似require "subdir/*" 的操作。

【问题讨论】:

    标签: lua


    【解决方案1】:

    有没有办法在普通 Lua 中运行子目录中的所有脚本 - 即,无需加载任何外部模块或包?

    没有。 Lua 被设计成一种嵌入式语言。因此,“vanilla Lua”非常小。它几乎没有基于文件系统的功能;无法遍历目录和模式匹配文件。

    如果您认真考虑使用 Lua 作为一种 shell 脚本语言,那么您需要习惯使用 Lua 模块来完成工作。

    【讨论】:

    • 我怀疑是这种情况。我希望有某种方法可以让 require 在第一次模式匹配时不停止,并继续运行路径中的所有匹配项。似乎它具有在没有外部模块的情况下执行此类任务所需的所有功能,但我怀疑没有内置的方法可以做到这一点。 :-/
    【解决方案2】:

    您可以访问 os.execute 吗?你能维护一个你想加载的模块列表吗?

    如果你有一个完整的 Lua 解释器,就很容易做你想做的事。 (这里以 Windows 为例)

     local f = io.popen("dir /b") for mod in f:lines() do require(mod) end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-04
      • 1970-01-01
      • 2023-01-04
      • 2016-08-12
      • 1970-01-01
      • 1970-01-01
      • 2016-08-20
      • 1970-01-01
      相关资源
      最近更新 更多