假设我有文件main.lua
,并且在子目录中我有一系列我想要运行的Lua脚本。有没有办法在普通的Luilla Lua中运行子目录中的所有脚本 - 也就是说,无需加载任何外部模块或包?据我所知,require
和dofile
仅适用于单个文件,我希望能够执行require "subdir/*"
之类的操作。
答案 0 :(得分:3)
有没有办法在普通的Luilla Lua中运行子目录中的所有脚本 - 也就是说,无需加载任何外部模块或包?
没有。 Lua旨在成为一种嵌入式语言。因此,“香草Lua”非常小。它几乎没有基于文件系统的功能;迭代目录和模式匹配文件是不可能的。
如果您认真使用Lua作为shell脚本语言,那么您需要习惯使用Lua模块来完成任务。
答案 1 :(得分:3)
您是否可以访问os.execute?你能维护一个你想加载的模块列表吗?
如果你有一个完整的Lua解释器,你很容易做到你想要的。 (这是Windows的一个例子)
local f = io.popen("dir /b") for mod in f:lines() do require(mod) end