在查找git push命令的文档时看到了下面的内容:

img

顺手查了一下这种描述方式的语法和名称,基于这个规范做一些总结。

POSIX

POSIX = Protable Operating System Interface(可移植操作系统接口)是一种标准,最后一个字母X表明其对 Unix API 的传承。Linux 基本逐步实现了 POSIX 兼容,可以简单理解为在 Linux 命令行执行应用程序的语法基本会遵循这个标准(或者说要求开发者遵循这些标准)。

其中,POSIX.1-2017 描述了命令行选项的参数语法:

1
2
utility_name [-a] [-b] [-c option_argument]
[-d | -e] [-f [option_argument]] [operand...]

基本结构为 utility_name(命令名)+ options(选项)+ option-arguments(参数)+ operands(操作数?)

语法详解

  1. -或者--后边会跟实际的参数名称。写法上-后边跟(通常是首字母)缩写,--跟完整的字母,比如最常用的-h --help -v --version
  2. []表示选项或者参数是可选的,比如[-f [ option_argument]]可以写-f-f some_argument或者干脆不带这个选项。不过标准中不推荐参数可选。
  3. |表示两侧的选项互斥。如果同时写了两个互斥参数会产生难以预期的结果。
  4. <>表示需要用实际值替换的参数名称,比如git push中有[--repo=<repository>]这个参数,repository就需要被实际仓库替换掉
  5. ...表示允许多个选项或者操作数出现。
  6. 如果一个选择后边有多个参数,用,或者空格分隔
  7. 在最后一组选项-参数后边的东西被称为 operands(操作数),没啥其他翻译…
  8. 选项的顺序基本无关紧要,原则上是字典序排列。