我正在为需要带有强制参数的-f
/选项的工具编写规范,因此例如这些是有效的调用:--foo
BAR
tool -f BAR
tool --foo BAR
如何在联机帮助页或其他正式定义的调用部分中指定此语法?
这意味着不需要这些选项,这不是我的意图:
tool [-f BAR | --foo BAR]
但简单地省略支架也没有意义,因为管道可能会被误认为是实际的壳管。
POSIX没有很长的选择,而且我也找不到 GNU 参考资料。
答案1
tool -f BAR | --foo BAR
我认为将其解释为“将输出通过管道传输tool -f BAR
到命令中”并不常见--foo BAR
。所以我会简单地使用
tool -f BAR | --foo BAR
还有其他可能性使用额外的标记,特别是如果调用更复杂,以使其更加明显。与可选参数不同的[]
是,它们都没有被普遍理解为强制论证,例如:
tool {-f BAR | --foo BAR}
或者
tool <-f BAR | --foo BAR>
乃至
tool (-f BAR | --foo BAR)
如果您想确保没有人误读调用规范,只需复制它:
tool -f BAR
tool --foo BAR
您将看到许多手册页和来自程序的帮助都使用这种多种方法,尽管它通常针对不同的调用而不是等效的调用。