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



我刚刚注意到动词风格命令参数的模式(git和CommandLineParser lib for.NET),不知道是否有人可以确认:

myprog dothis -a "someArg"

  • -a
  • --arg

单点划线前缀和双点划线前缀之间有什么区别?单短划线前缀是否总是用于单字母参数说明符,而双短划线前缀总是用于参数的"长名称"?

有没有一个正式的惯例来推动这一点,或者这是一种普遍接受的非正式做法?(或者我只是无中生有?)

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

(就这一点而言……这种动词/args的风格叫什么?我似乎找不到太多关于它的东西)

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

类Unix系统中的选项约定

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

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

有posix约定和getopt

但情况并非总是如此,例如javafind

另请参阅:

https://golang.org/pkg/flag/

http://docs.oracle.com/javase/8/javafx/api/javafx/application/Application.Parameters.html

最新更新