命令行应用程序参数风格指南

11

在Unix平台上编写命令行应用程序的参数是否有样式指南?作为iOS世界的一员,我想到了类似于人机界面指南 (HIG)的东西。我正在使用Python编写一个脚本,其中可以接受参数。

例如:如何命名参数,在何时使用-dash--doubleDash


2
使用argparse模块进行参数解析,它易于使用并且基本上强制你拥有良好的CLI风格。http://docs.python.org/dev/library/argparse.html - wim
3个回答

6

是的,但参数的语法和命名怎么办? - fearmint
@JoePasq:我怀疑没有人正式编写命名约定,但查看GNU coreutils使用的选项会有所帮助。 - Mechanical snail
你被 argparse 的参数语法所限制。它提供了位置参数、单字母参数(如 -a -b -c,可以像 -abc 一样分组)和长参数(如 --long)。我不确定是否有针对命令行参数的命名约定,或者是否能够在更具体的层面上进行。 - Ben
嗯,不同的参数解析模块基本上定义了标准。其中一些具有遗留支持--如果需要,它们将允许您在长选项名称之前使用单破折号或加号代替破折号--但您应该让合理现代的选项解析库的默认行为指导您。 - tripleee
有一些命名约定,其中大部分可以在流行命令的手册页面中找到。一些例子是 -h--help(显示命令语法概要,然后退出),-V--version(显示版本号,然后退出),-v--verbose(提供有关命令正在执行的额外信息),-q--quiet(产生较少的输出),-d--debug(在标准错误上提供调试信息),-n--dry-run(提供有关命令将要执行的信息而不是实际执行它)。 - ajk
啊,这也有帮助。我并没有完全意识到使用argparse符合事实标准。谢谢。 - fearmint

5

5
GNU编码规范中有一节关于命令行程序的内容。

为了具有posixy的感觉,您不仅应该提供标准的命令行选项(短选项和长选项),而且如果可能的话,应遵守从标准输入(或命令行)读取并写入标准输出的要求,并仅通过选项(如-o/--output)覆盖输出。这是大多数GNU命令行工具的期望行为。


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