在某些操作系统中,如Ubuntu,Debian等。cal
返回当前日历,突出显示今天。 cal -h
关闭了今天的重点:
但在某些操作系统中,如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
?
答案 0 :(得分:1)
执行cal -h
并解析单词“help”的输出。如果找到该单词,则“-h”表示帮助。如果没有找到单词,那么它很可能意味着突出显示但是没有确定的知道方式(这种方式适用于所有类型的Linux)。很可能您需要一些代码来读取标识平台的环境var,以便您可以发出正确的命令并依赖不同Linux风格的用户在默认失败时报告并向您报告正确的命令行参数。 OTOH你可以将supprt限制为只有你有权访问的平台。或者这些方法的组合。
答案 1 :(得分:0)
另一种解决方案。
Arch Linux cal
有-V
个参数,它返回UTIL_LINUX_VERSION
。
在这种情况下,在Arch Linux中调用cal -V
后,您可能会收到退出代码0,但Ubuntu没有-V
param并返回64:)
因此,如果cal -V
返回退出代码0,则-h
返回帮助