我刚刚注意到一个模式(在git和.NET的CommandLineParser库中)用于动词式命令参数,并想知道是否有人可以确认:
myprog dothis -a "someArg"
-a
--arg
单破折号前缀和双破折号前缀之间有什么区别?单个短划线前缀是否始终用于单字母参数说明符,其中双短划线前缀始终用于参数的“长名称”?
在某个地方是否有正式的公约推动这一点,还是普遍接受的非正式做法? (或者我只是做些什么?)
好奇......我从来没有注意到git中的模式,CommandLineParser文档相当薄,而且一些博客文章或其他文章暗示了这个约定。
(就此而言......这种动词/ args的风格甚至叫什么?我似乎找不到任何东西)
答案 0 :(得分:1)
来自维基百科:https://en.wikipedia.org/wiki/Command-line_interface
类Unix系统中的选项约定
在类Unix系统中,ASCII连字符 - 开始选项;新的 (和GNU)约定是使用两个连字符然后一个单词(例如--create) 在旧约定中确定选项的使用(并且仍然如此) 可用作常用选项的选项)是使用一个 连字符然后一个字母(例如-c);如果一个连字符后跟两个或 更多字母可能意味着指定了两个选项,或者它可能 意味着第二个和后续字母是一个参数(例如 第一个选项的文件名或日期。
两个连字符 - 不带字母( - )的字符可以 表明不应将剩余的参数视为 选项,例如,如果文件名本身以 连字符,或者如果进一步的参数是用于内部命令(例如 须藤)。双连字符也有时用于加上“long”前缀 选项“使用更多描述性选项名称。这是一个 GNU软件的共同特征。 getopt函数和程序,以及 getopts命令通常用于解析命令行选项。
答案 1 :(得分:0)
有posix convention和getopt
但情况并非总是如此,例如java
和find
。
另见:
http://docs.oracle.com/javase/8/javafx/api/javafx/application/Application.Parameters.html