命令行中的破折号和参数有标准约定吗?
关于命令行中使用两个短横线、一个短横线或者根本不使用选项而是按顺序读取输入的规则是什么?
我知道有很多不同的写法,但有没有什么约定是业界标准的(比如在Java、C或Python中)?
3 个回答
1
我同意@Nishant的说法,单个短横线是一种更长选项的简写方式。
可以看看Apache Commons CLI给出的ls示例,链接在这里:http://commons.apache.org/cli/usage.html#ls_Example
4
这要看个人喜好了。
在Unix系统中,命令有两种形式:长形式和短形式(一个字符)。长形式用两个短横线来表示,比如 --install
。短形式则用一个短横线,比如 -i
。
不过,规则总是有例外的。比如,Java命令行选项就不遵循这个规则:-cp
和 -classpath
是一样的,但它们都只用一个短横线标记。还有 -version
就没有短的别名等等。
在Windows应用程序中,通常使用斜杠。
作为一个Java开发者,我更喜欢使用平台无关的约定(短横线)。而且,很多库(比如来自Jakarta项目的cli)也支持短横线,这样实现起来更简单。
6
可以去看看Python的optparse模块的背景部分,里面能解答你的一些问题,并且举了一些常见的参数格式标准的例子。optparse模块的作者推荐了一种风格,这种风格大致符合POSIX命令行参数的规范,另外还增加了--双破折号长参数,这个是来自GNU编码标准的。