第一版是为 Lua 5.0 编写的。虽然在很大程度上仍然适用于后续版本,但有一些区别。
第四版针对 Lua 5.3,可在 亚马逊 和其他书店购买。
购买本书,您还可以帮助支持 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。保留所有权利。 |