破折号和参数是不是有任何标准的命令行约定? [复制]

Posted

技术标签:

【中文标题】破折号和参数是不是有任何标准的命令行约定? [复制]【英文标题】:Are there any standard Command line conventions for dashes and arguments? [duplicate]破折号和参数是否有任何标准的命令行约定? [复制] 【发布时间】:2011-12-19 10:43:21 【问题描述】:

关于何时使用 2 个破折号、1 个破折号或根本不使用任何选项并按顺序读取输入的命令行约定是什么?

我知道有很多变体,但有什么约定可以作为行业标准脱颖而出(比如在 Java、C 或 Python 中)?

【问题讨论】:

很多时候,单破折号是类似选项的快捷方式。例如。 ./cassandra.sh -h hostname 相当于双虚线版本./cassandra.sh --host hostname pubs.opengroup.org/onlinepubs/009604499/basedefs/… 和gnu.org/prep/standards/html_node/… 类似问题:***.com/q/7903006/440558 【参考方案1】:

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

【讨论】:

【参考方案2】:

这取决于你的口味。

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

但没有例外,没有规则。例如 java 本身的命令行选项不遵循这个约定:-cp-classpath 含义相同,并且都只用一个破折号标记。 -version 没有短别名等。

斜线用于 Windows 应用程序。

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

【讨论】:

【参考方案3】:

我同意@Nishant,单破折号是更详细选项的简写符号。 请参阅 Apache Commons CLI http://commons.apache.org/cli/usage.html#ls_Example 给出的 ls 示例

【讨论】:

以上是关于破折号和参数是不是有任何标准的命令行约定? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Linux 命令行开关和参数是不是有标准? [关闭]

REST API 是不是有任何命名约定准则? [关闭]

要遵循的 url 参数命名约定或标准是啥

Python必备基本技能——命令行参数args详解

ECMAScript 6 是不是有抽象类的约定? [复制]

自定义 grunt 任务命名约定