2017-02-12 14 views
1

我刚刚注意到动态样式命令参数的一个模式(在git和CommandLineParser库中为.NET),并且想知道是否有人可以确认:关于命令行动词参数的约定-a vs --arg

myprog dothis -a "someArg"

  • -a
  • --arg

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

是否有正式的会议推动这一点,或者它是一个普遍接受的非正式的做法? (或者我什么都没做?)

只是好奇......我从来没有注意到在git中的模式,CommandLineParser文档非常薄,一些博客文章或其他牵连惯例。

(对于这个问题......这是什么风格的动词/ ARGS甚至叫我似乎无法找到太多就可以了什么?)

回答

1

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

选项公约在类Unix系统中

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

两个连字符减号字符( - )可以 指示剩余的参数不应当作为 选择,这例如是有用的,如果一个文件名本身与 开始一个连字符,或者如果进一步处理参数是指内部命令(例如, sudo)。双连字符短语有时也用作前缀“long 选项”的前缀,其中使用了更多描述性选项名称。这是GNU软件的一个常见功能。 getopt函数和程序,以及getopts命令通常用于解析命令行选项。

+1

完美,这正是我试图找到。 – jleach