破折号和参数是否有任何标准的命令行约定?

时间:2011-11-01 12:00:52

标签: java python unix command-line-arguments

关于何时使用2个短划线,1个短划线或根本没有选项并且只是按顺序读取输入的命令行约定是什么?

我意识到有很多变种,但是任何约定都是行业标准(比如Java,C或Python)吗?

3 个答案:

答案 0 :(得分:6)

阅读Python的optparse模块的background section,它回答了你的一些问题,并举例说明了一些常见的参数格式标准。 optparse模块作者推荐一种大致对应于POSIX conventions for command line arguments的样式,并添加了来自GNU编码标准的--double-dashed-long-arguments。

答案 1 :(得分:3)

这取决于你的口味。

Unix惯例是命令有两种形式:长和短(一个字符)。为了表示长形式,我们使用2个破折号 - 。例如--install。简短形式标有一个破折号,例如-i

但没有例外的规则。例如,java本身的命令行选项不遵循此约定:-cp-classpath表示相同,并且两者仅标记为一个破折号。 -version没有短别名等。

在Windows应用程序中使用斜杠。

我作为java开发人员更喜欢使用平台无关的约定(破折号)。此外,各种库(如来自jakarta项目的cli)支持破折号,因此更容易实现。

答案 2 :(得分:1)

我同意@Nishant,单一短划线是一个更详细的选项的简写符号 请参阅Apache Commons CLI http://commons.apache.org/cli/usage.html#ls_Example

给出的ls示例