第一版是針對 Lua 5.0 編寫的。儘管在很大程度上仍然適用於後續版本,但仍存在一些差異。
第四版針對 Lua 5.3,可在 Amazon 和其他書店購買。
購買本書,您還可以協助 支持 Lua 專案。
![]() |
用 Lua 編寫程式 | ![]() |
第一部分。語言 第 1 章。入門 |
獨立執行器(也稱為 lua.c
,因為這是其原始檔,或簡稱為 lua
,因為這是其可執行檔)是一個小型程式,允許直接使用 Lua。本節說明其主要選項。
當執行器載入檔案時,如果第一行以數字符號(`#
´)開頭,則會略過該行。此功能允許在 Unix 系統中將 Lua 用作指令碼執行器。如果您使用類似下列內容來啟動程式
#!/usr/local/bin/lua(假設獨立執行器位於
/usr/local/bin
),或
#!/usr/bin/env lua則您可以直接呼叫程式,而無需明確呼叫 Lua 執行器。
lua
的用法為
lua [options] [script [args]]所有內容都是選用的。正如我們已經看到的,當我們在沒有引數的情況下呼叫
lua
時,執行器會進入互動模式。
-e
選項允許我們直接在命令列中輸入程式碼。例如,
prompt> lua -e "print(math.sin(12))" --> -0.53657291800043(Unix 需要雙引號才能阻止 shell 解釋括號。)正如我們先前所見,
-l
會載入檔案,而 -i
會在執行其他引數後進入互動模式。因此,例如,呼叫
prompt> lua -i -l a.lua -e "x = 10"將會載入檔案
a.lua
,然後執行指定 x = 10
,最後顯示提示以進行互動。
每當定義全域變數 _PROMPT
時,lua
都會在互動時使用其值作為提示。因此,您可以使用類似這樣的呼叫來變更提示
prompt> lua -i -e "_PROMPT=' lua> '" lua>我們假設
"prompt"
是系統提示。在範例中,外層引號會阻止 shell 解釋內層引號,而內層引號則由 Lua 解釋。更確切地說,Lua 會收到以下命令來執行
_PROMPT=' lua> '這會將字串
" lua> "
指定給全域變數 _PROMPT
。
在開始執行參數之前,lua
會尋找一個名為 LUA_INIT
的環境變數。如果存在此變數且其內容為 @
filename,則 lua
會載入指定的檔案。如果定義了 LUA_INIT
但其開頭不是 @
,則 lua
會假設其包含 Lua 程式碼並執行它。在設定獨立直譯器時,這個變數可提供極大的彈性,因為您可以在設定中使用 Lua 的所有功能。您可以預先載入套件、變更提示字元和路徑、定義自己的函式、重新命名或刪除函式,等等。
主腳本可以在全域變數 arg
中擷取其參數。在類似下列的呼叫中
prompt> lua script a b c
lua
會在執行腳本之前建立包含所有命令列參數的表格 arg
。腳本名稱會放入索引 0;其第一個參數(範例中的 a
)會放入索引 1,以此類推。任何選項都會放入負索引,因為它們會出現在腳本之前。例如,在呼叫中
prompt> lua -e "sin=math.sin" script a b
lua
會以下列方式收集參數
arg[-3] = "lua" arg[-2] = "-e" arg[-1] = "sin=math.sin" arg[0] = "script" arg[1] = "a" arg[2] = "b"通常,腳本只會使用正索引(範例中的
arg[1]
和 arg[2]
)。
版權所有 © 2003–2004 Roberto Ierusalimschy。保留所有權利。 | ![]() |