linux - 确定返回参数的确切内容

标签 linux lua readline bsd

在某些操作系统中,如 Ubuntu、Debian 等。cal 返回当前日历并突出显示今天。 cal -h 关闭今天的突出显示:

screenshot

但在某些操作系统中,例如 Arch Linux -h param 显示日历的帮助。

我正在用 Lua 编写一个小脚本:

function foo()
    local f, err = io.popen('cal -h', 'r')
    if f then
        local s = f:read("*all")
        f:close()
        return s
    else
        return err
    end
end

我的主要问题 - 我如何确定具体返回的参数 -h

最佳答案

执行 cal -h 并解析单词“help”的输出。如果找到该词,则“-h”用于寻求帮助。如果找不到单词,它很可能用于表示突出显示,但没有确定的方法(一种适用于所有 Linux 版本的方法)。您很可能需要一些代码来读取标识平台的环境变量,以便您可以发出正确的命令并依赖不同 Linux 风格的用户在默认失败时报告并向您报告正确的命令行参数。 OTOH 您可以将支持仅限于您有权访问的那些平台。或这些方法的组合。

关于linux - 确定返回参数的确切内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26576431/

相关文章:

c++ - 编译时未定义对 'main' 的引用

linux - Debian Live 无法配置有线网络

c++ - 手动添加 IDE 对 Lua (CryEngine) 的支持

c++ - 是否可以通过函数地址从 lua 脚本调用任何主机 c/c++ 函数?

javascript - 如何模拟 readline.createInterface()?

linux - 动态删除重复的日志消息

linux - 如何发送USR2信号?

Lua CLI 安装 - 如何让终端命令 'lua' 在 OSX 上运行?

c - -isysroot 或 SDKROOT 问题

java - 在 Java 中搜索文本文件并返回数组