第一版是針對 Lua 5.0 編寫的。雖然在很大程度上仍然適用於後續版本,但有一些區別。
第四版針對 Lua 5.3,可在 Amazon 和其他書店購買。
購買本書,您還可以幫助 支持 Lua 項目。
![]() |
用 Lua 編程 | ![]() |
第三部分。標準函式庫 第 22 章。作業系統函式庫 |
os.exit
函式終止程式的執行。os.getenv
函式取得環境變數的值。它接收變數名稱並傳回一個包含其值的字串
print(os.getenv("HOME")) --> /home/lua如果未定義變數,呼叫會傳回 nil。
os.execute
函式執行系統命令;它等同於 C 中的 system
函式。它接收一個包含命令的字串並傳回一個錯誤碼。例如,在 Unix 和 DOS-Windows 中,您可以撰寫以下函式來建立新目錄
function createDir (dirname) os.execute("mkdir " .. dirname) end
os.execute
函式功能強大,但它也高度依賴系統。
os.setlocale
函式設定 Lua 程式使用的目前區域設定。區域設定定義對文化或語言差異敏感的行為。setlocale
函式有兩個字串參數:區域設定名稱和一個類別,用於指定區域設定將影響哪些功能。區域設定有六個類別:"collate"
控制字串的字母順序;"ctype"
控制個別字元的類型(例如,什麼是字母)以及大小寫之間的轉換;"monetary"
對 Lua 程式沒有影響;"numeric"
控制數字的格式化方式;"time"
控制日期和時間的格式化方式(即函式 os.date
);"all"
控制以上所有函式。預設類別為 "all"
,因此如果您只使用區域設定名稱呼叫 setlocale
,它將設定所有類別。setlocale
函式傳回區域設定名稱,或在失敗時傳回 nil(通常是因為系統不支援指定的區域設定)。
print(os.setlocale("ISO-8859-1", "collate")) --> ISO-8859-1
類別 "numeric"
有點棘手。雖然葡萄牙語和其他拉丁語系語言使用逗號而不是句點來表示小數,但區域設定不會改變 Lua 分析數字的方式(原因之一是,像 print(3,4)
這樣的表達式在 Lua 中已經有意義)。因此,您可能會遇到一個無法辨識帶有逗號的數字,但也不能理解帶有句點的數字的系統
-- set locale for Portuguese-Brazil print(os.setlocale('pt_BR')) --> pt_BR print(3,4) --> 3 4 print(3.4) --> stdin:1: malformed number near `3.4'
版權所有 © 2003–2004 Roberto Ierusalimschy。保留所有權利。 | ![]() |