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

18
我正在审查一个使用命令行开关的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上具有跨平台兼容性。

寻求一些建议,关于这些中最常用的惯例以及原因。

2个回答

14

Apache Commons CLI提供了常用惯例的描述,同时也是这类用例的良好解析器。


0

我主要在Linux上工作,但通常情况下是这样的

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

如果每个选项都有一个值或参数需要传递
myapp -o1 aSwitch -o2 anotherSwitch -o3 aThirdSwitch

谢谢 - 实际上,这个特定应用的参数没有值 - 它们只是改变它所做的事情的性质。(我想它们类似于 ls -l 或类似的东西。) - Steve Chambers
那么,如果你正在开发一个命令行界面应用程序,我会像这样列出它们:myapp -aSwitch -anotherSwitch -aThirdSwitch如果输入错误,可以打印一个帮助信息,显示支持的选项或类似内容。 - Nagarz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接