因此,我正在为 API 编写 CLI,并且遇到了一个问题,其中一个命令support
有两个可选参数,id
并且fields
我想知道如何证明这些参数是可选的,但是,您必须至少提供其中一个,甚至两者都提供。我不知道如何用谷歌搜索来表达,所以我没能找到任何东西。我最好的猜测是类似的Usage: support [id=...]||[fields=...]
,但我想知道标准。
答案1
POSIX 没有任何关于如何记录命令的内容,我所知道的任何标准也没有。
一种常见的约定是列出两个单独的命令行,一个带有id
,一个带有fields
。
support id=… [OPTION…]
support fields=… [OPTION…]
或者,您可以使用{id|fields}
来指示可以指定其中一个(但不能同时指定两者)。当命令行的其余部分相同时,这很有用,以避免重复所述其余部分。另一方面,它的可读性稍差。
support {id=NAME|fields=FIELD1,FIELD2} [OPTION]…
示例:cpio
下面的手册页自由BSD,索拉里斯,Linux-i
对不同模式使用不同的线路(通过、-o
和之间的选择来指示-p
)。也是如此POSIX本身。 Linux 手册页用于{-i|--extract}
指示可以使用-i
或;--extract
我发现 FreeBSD 手册页中没有其他选择的大括号的使用很奇怪。