答案1
这是一个很好的问题(多年后仍然悬而未决)。我想答案就是现在正式在此回答谷歌文档:
- 必填项目:无括号
- 可选的互斥项:方括号、管道分隔
- 必需的互斥项:花括号、管道分隔
答案2
在互斥选项列表中使用 {} 是否存在某种标准或约定?
当我遇到你的问题时,我正在研究大括号 ({}) 中指定的选项与方括号 ([]) 中指定的选项的含义的重要性。这是我发现对于我想要理解的内容有用的唯一信息来源,即为什么在大括号中声明了选项。
正如你所写:
我完全理解,在这种情况下,这意味着必须给出其中一个......
阅读 netstat 的手册页后,我了解到这些选项是可与命令一起使用的选项,必须在使用可能与命令一起列出的任何其他选项之前使用/声明,并且仅列出列出的选项之一可以使用竖线分隔。
上述示例可以在 netstat 命令的手册页中找到:
netstat {--route|-r} [address_family_options] [--extend|-e[--extend|-e]] [--verbose|-v] [--numeric|-n] [--numeric-hosts ][--数字端口][--数字端口] [--连续|-c] [延迟]
本质上,可以使用 --route 或 -r 之一(它们的含义相同),但该选项必须位于其他列出的选项之前。
我只花时间回答你的问题,因为这个问题似乎仍然悬而未决,但在我看来,你回答了你自己的问题:)
惯例只是一种广泛确立的做法。无论是否明确声明,您经常发现这种格式的 man 文档这一事实表明该约定(假设我在上面正确地声明了)已牢固建立。
有“标准”吗?对我来说,这取决于您想对“标准”采用什么定义。对我来说,约定和标准这两个词的含义几乎没有区别,就我们在这里使用这个术语的意义而言。从这个意义上说,我认为这两个词的意思是“相互同意、使用和接受作为规范的东西”。
感谢您花时间帮助我理解这个约定/标准。