命令行选项标准
在查找git push命令的文档时看到了下面的内容:

顺手查了一下这种描述方式的语法和名称,基于这个规范做一些总结。
POSIX
POSIX = Protable Operating System Interface(可移植操作系统接口)是一种标准,最后一个字母X表明其对 Unix API 的传承。Linux 基本逐步实现了 POSIX 兼容,可以简单理解为在 Linux 命令行执行应用程序的语法基本会遵循这个标准(或者说要求开发者遵循这些标准)。
其中,POSIX.1-2017 描述了命令行选项的参数语法:
1 | utility_name [-a] [-b] [-c option_argument] |
基本结构为 utility_name(命令名)+ options(选项)+ option-arguments(参数)+ operands(操作数?)
语法详解
-或者--后边会跟实际的参数名称。写法上-后边跟(通常是首字母)缩写,--跟完整的字母,比如最常用的-h--help-v--version[]表示选项或者参数是可选的,比如[-f [ option_argument]]可以写-f、-f some_argument或者干脆不带这个选项。不过标准中不推荐参数可选。|表示两侧的选项互斥。如果同时写了两个互斥参数会产生难以预期的结果。<>表示需要用实际值替换的参数名称,比如git push中有[--repo=<repository>]这个参数,repository就需要被实际仓库替换掉...表示允许多个选项或者操作数出现。- 如果一个选择后边有多个参数,用
,或者空格分隔 - 在最后一组选项-参数后边的东西被称为 operands(操作数),没啥其他翻译…
- 选项的顺序基本无关紧要,原则上是字典序排列。