首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Lua脚本中确定系统的操作系统?

如何从Lua脚本中确定系统的操作系统?
EN

Stack Overflow用户
提问于 2008-11-17 07:24:07
回答 4查看 13.9K关注 0票数 20

好的,我需要从Lua脚本确定系统的操作系统,但是Lua本身没有这样的API,所以我使用os.getenv()并查询环境变量。在Windows上检查环境变量" OS“会给出系统操作系统的名称,但是是否有一些在Windows和大多数版本的Unix上都存在的变量可以检查?

EN

回答 4

Stack Overflow用户

发布于 2013-01-20 23:08:02

你可以试试package.config:sub(1,1)。它返回路径分隔符,在Windows上是'\\',在Unixes上是'/'

票数 31
EN

Stack Overflow用户

发布于 2015-06-21 08:06:46

编译lua时,它的配置略有不同,具体取决于编译所针对的操作系统。

因此,在“package”模块中设置的许多字符串可以用来区分它是为哪个系统编译的。

例如,当lua加载作为动态库分发的基于C的模块时,它必须知道用于这些库的扩展,这在每个操作系统上都是不同的。

因此,您可以使用类似以下的函数来确定操作系统。

代码语言:javascript
复制
local BinaryFormat = package.cpath:match("%p[\\|/]?%p(%a+)")
if BinaryFormat == "dll" then
    function os.name()
        return "Windows"
    end
elseif BinaryFormat == "so" then
    function os.name()
        return "Linux"
    end
elseif BinaryFormat == "dylib" then
    function os.name()
        return "MacOS"
    end
end
BinaryFormat = nil
票数 6
EN

Stack Overflow用户

发布于 2008-11-17 07:34:19

我猜,如果你只需要Windows/Unix检测,你可以检查文件系统中是否存在/etc、/bin或/boot目录。另外,如果你需要知道它是哪个发行版,大多数Linux发行版在/etc中都有一个小文件来显示发行版和版本,可悲的是它们都有不同的名称。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/295052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档