命令行中的破折号和参数有标准约定吗?

5 投票
3 回答
3784 浏览
提问于 2025-04-17 05:25

关于命令行中使用两个短横线、一个短横线或者根本不使用选项而是按顺序读取输入的规则是什么?

我知道有很多不同的写法,但有没有什么约定是业界标准的(比如在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编码标准的。

撰写回答