命令行动词参数的约定 -a 与 --arg

jle*_*ach 5 command-line command-line-arguments

我刚刚注意到动词样式命令参数的模式(在 git 和 .NET 的 CommandLineParser 库中),想知道是否有人可以确认:

myprog dothis -a "someArg"

  • -a
  • --arg

单破折号前缀和双破折号前缀有什么区别?单破折号前缀是否始终用于单字母参数说明符,其中双破折号前缀始终用于参数的“长名称”?

是否有某个地方有正式的约定来推动这一点,还是普遍接受的非正式做法?(或者我只是在做些什么?)

只是好奇......我从未注意到 git 中的模式,CommandLineParser 文档非常薄,一些博客文章或其他内容涉及约定。

(就此而言......这种动词/参数的风格甚至叫什么?我似乎找不到太多关于它的东西)

Dav*_*eri 9

来自维基百科: https: //en.wikipedia.org/wiki/Command-line_interface

类 Unix 系统中的选项约定

在类 Unix 系统中,ASCII 连字符减号开始选项;新的(和 GNU)约定是使用两个连字符然后一个单词(例如 --create)来标识选项的使用,而旧约定(并且仍然可作为常用选项的选项)是使用一个连字符然后一个字母(例如-c);如果一个连字符后跟两个或多个字母,则可能意味着正在指定两个选项,或者可能意味着第二个和后续字母是第一个选项的参数(例如文件名或日期)。

后面没有字母 (--) 的两个连字符减号可能表示不应将其余参数视为选项,这在文件名本身以连字符开头或其他参数用于内部命令时很有用(例如须藤)。双连字符减号有时也用于前缀“长选项”,其中使用更具描述性的选项名称。这是 GNU 软件的一个共同特征。getopt 函数和程序以及 getopts 命令通常用于解析命令行选项。