命令行选项标准
在查找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(操作数),没啥其他翻译…
- 选项的顺序基本无关紧要,原则上是字典序排列。