Command line 命令行谓词参数的约定-a vs--arg

Command line 命令行谓词参数的约定-a vs--arg,command-line,command-line-arguments,Command Line,Command Line Arguments,我刚刚注意到动词式命令参数的模式(在git和.NET的CommandLineParser库中),我想知道是否有人可以确认: myprog dothis-a“someArg” -a --arg 单破折号前缀和双破折号前缀有什么区别?单破折号前缀是否始终用于单字母参数说明符,而双破折号前缀始终用于参数的“长名称” 是有一个正式的惯例在推动这一点,还是一个普遍接受的非正式做法?(或者我只是在做些无足轻重的事情?) 只是好奇。。。我从未注意到git中的模式,CommandLineParser文档非常

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

myprog dothis-a“someArg”

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

是有一个正式的惯例在推动这一点,还是一个普遍接受的非正式做法?(或者我只是在做些无足轻重的事情?)

只是好奇。。。我从未注意到git中的模式,CommandLineParser文档非常薄,一些博客文章或其他文章暗示了这种约定

(就此而言……这种动词/参数的风格叫什么?我似乎找不到太多相关内容)

来自维基百科:

类Unix系统中的选项约定

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

不带以下字母(--)的两个连字符减号可以 指示不应将其余参数视为 选项,例如,如果文件名本身以 连字符,或者如果进一步的参数用于内部命令(例如。 sudo)。双连字符减号有时也用于前缀“long” 选项”,其中使用了更具描述性的选项名称。这是一个 GNU软件的共同特点。getopt函数和程序,以及 getopts命令通常用于解析命令行选项

有和
getopt

但情况并非总是如此,例如
java
find

另见:


太好了,这正是我想要找到的。