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

时间:2017-02-12 03:05:00

标签: command-line command-line-arguments

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

myprog dothis -a "someArg"

  • -a
  • --arg

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

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

好奇......我从来没有注意到git中的模式,CommandLineParser文档相当薄,而且一些博客文章或其他文章暗示了这个约定。

(就此而言......这种动词/ args的风格甚至叫什么?我似乎找不到任何东西)

2 个答案:

答案 0 :(得分:1)

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

类Unix系统中的选项约定

  

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

     

两个连字符 - 不带字母( - )的字符可以   表明不应将剩余的参数视为   选项,例如,如果文件名本身以   连字符,或者如果进一步的参数是用于内部命令(例如   须藤)。双连字符也有时用于加上“long”前缀   选项“使用更多描述性选项名称。这是一个   GNU软件的共同特征。 getopt函数和程序,以及   getopts命令通常用于解析命令行选项。

答案 1 :(得分:0)