2011-10-15 35 views
1

假設我有文件main.lua,並且在一個子目錄中我有一系列我想要運行的Lua腳本。有沒有辦法在plain vanilla Lua的子目錄中運行所有腳本 - 也就是說,無需加載任何外部模塊或軟件包?據我所知,requiredofile只能處理單個文件,我希望能夠執行類似require "subdir/*"的操作。運行一個目錄中的所有Lua文件

回答

3

你有權訪問os.execute嗎?你能保存你想要加載的模塊列表嗎?

如果你有一個完整的Lua解釋器,可以很容易地做你想做的事情。 (這裏是Windows的一個例子)

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

有沒有辦法在plain vanilla Lua的子目錄中運行所有腳本 - 也就是說,無需加載任何外部模塊或包?

編號Lua被設計成嵌入式語言。因此,「香草Lua」非常小。它幾乎沒有基於文件系統的功能;遍歷目錄和模式匹配文件是不可能的。

如果您認真對待使用Lua作爲shell腳本語言,那麼您需要習慣使用Lua模塊來完成任務。

+0

我懷疑是這種情況。我希望有一些方法可以讓我們在第一次模式匹配時不要停下來,並且繼續通過路徑中的所有匹配。看起來它具有執行沒有外部模塊這樣的任務所必需的所有功能,但是我懷疑沒有內置的方法來實現它。 : - / – Alex

相關問題