命令行参数是否有任何命名约定?

Are there any naming conventions for command line arguments?

我正在审查一个命令行驱动的 Java 应用程序,其命令行开关采用小驼峰式,如下所示:

myapp aSwitch anotherSwitch aThirdSwitch

我认为所有小写字母和前导连字符可能更可取:

myapp -aswitch -anotherswitch -athirdswitch

...或者也许:

myapp -a-switch -another-switch -a-third-switch

... 或者:

myapp --a-switch --another-switch --a-third-switch

但是很难找到令人信服的理由。希望遵循当前惯例并实现跨平台兼容,至少 Windows/Linux.

感谢您就其中最常用的约定及其背后的任何推理提出建议。

Apache Commons CLI有常用约定的说明。对于此类用例,它也是一个很好的解析器

我主要在 linux 上工作,但通常是

app -<option1> <option1 value> -<option2> <option2 value> -<option2> <option3 value> 

如果每个选项都有要传递的值或参数

myapp -o1 aSwitch -o2 anotherSwitch -o3 aThirdSwitch