为什么“ncal -CM”不起作用,但“ncal -MC”却起作用?

为什么“ncal -CM”不起作用,但“ncal -MC”却起作用?

我想将日历放入文件中,所以我运行:

$ ncal -CMh > file.txt

但我收到了以下信息:

Usage: cal [general options] [-hjy] [[month] year]
       cal [general options] [-hj] [-m month] [year]
       ncal [general options] [-bhJjpwySM] [-s country_code] [[month] year]
       ncal [general options] [-bhJeoSM] [year]
General options: [-NC31] [-A months] [-B months]
For debug the highlighting: [-H yyyy-mm-dd] [-d yyyy-mm]

我很惊讶,因为我确信命令是正确的。我想也许getopts选项并不像我想象的那样可以改变,所以我尝试重新排序选项。然而,-C之前没有的所有排列都-M有效:

$ ncal -hC
$ ncal -Ch
$ ncal -hM
$ ncal -Mh
$ ncal -MCh
$ ncal -MhC
$ ncal -hMC
$ ...

我的理论是,当ncal进入 cal 模式时,使用-C它会失去该-M选项,可能是因为-M原始cal.我不知道这是否正确。

为什么会发生这种情况?

这是最新的 Debian Jessie。

答案1

cal使用消息显示和的有效选项ncal

Usage: cal [general options] [-hjy] [[month] year]
       cal [general options] [-hj] [-m month] [year]
       ncal [general options] [-bhJjpwySM] [-s country_code] [[month] year]
       ncal [general options] [-bhJeoSM] [year]
General options: [-NC31] [-A months] [-B months]

一个flag之后-C,只能使用通用选项或者有效cal选项, 直到-N标志切换回ncal模式,之后您可以使用常规选项或有效ncal选项。直到另一个-C标志切换回cal模式,依此类推。

相关内容