命令行应用程序参数样式指南
Posted
技术标签:
【中文标题】命令行应用程序参数样式指南【英文标题】:Command Line app arguments style guide 【发布时间】:2011-11-07 06:44:11 【问题描述】:是否有在 unix 平台上编写命令行应用程序参数的样式指南?来自 ios 世界,我正在考虑类似于 Human Interface Guidelines (HIG) 的东西。我正在用 Python 写一个script 可以接受参数。
示例:如何命名参数,何时使用-dash
或--doubleDash
。
【问题讨论】:
使用argparse
模块来解析你的参数,它很容易使用,它或多或少地迫使你为你的CLI 有一个好的风格。 docs.python.org/dev/library/argparse.html
【参考方案1】:
看看这个标准库模块:http://docs.python.org/library/argparse.html
这将使您的生活更加更轻松地实现命令行界面,并且您最终会使用它的样式指南。
请注意,argparse 仅在 Python 2.7(或 3.2,在 3.x 系列中)中可用。在此之前有http://docs.python.org/library/optparse.html,它会产生类似的命令行界面,但使用起来没有那么有趣。
【讨论】:
是的,但是参数的语法和命名呢? @JoePasq:我怀疑是否有人正式编写过命名约定,但看看 GNU coreutils 使用的选项会有所帮助。 您被 argparse 锁定在参数的语法中。它为您提供位置参数、像-a -b -c
这样的单字母参数(可以像-abc
那样分组)和像--long
这样的长参数。我不确定命令行参数是否有命名约定,或者甚至可能超过一个模糊的级别。
求助。那里的不同参数解析模块基本上定义了标准。其中一些具有遗留支持-如果需要,它们将允许您在长选项名称之前使用单个破折号,或者使用加号代替破折号-但是您应该让合理现代的选项解析的默认行为图书馆应该是你的指导。
有一些命名约定,其中大部分可以在流行命令的手册页中找到。一些示例是-h
或--help
(显示命令语法概要然后退出)、-V
或--version
(显示版本号然后退出)、-v
或--verbose
(提供额外信息关于命令正在做什么的标准错误),-q
或 --quiet
(产生更少的输出),-d
或 --debug
(提供有关标准错误的调试信息),-n
或 --dry-run
(提供信息关于命令会做什么而不是实际执行)等。【参考方案2】:
GNU Coding Standards 在command line programs 上有一个部分。
为了给人一种积极的感觉,您不仅应该提供标准命令行选项,无论是短的还是长的,而且如果可能的话,还应该坚持从标准输入(或命令行)读取并写入标准输出,并且仅使用选项覆盖输出(例如-o
/--output
)。这是大多数 GNU 命令行工具所期望的。
【讨论】:
【参考方案3】:阅读 Unix 可用性艺术http://www.catb.org/~esr/writings/taouu/taouu.html
【讨论】:
以上是关于命令行应用程序参数样式指南的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# 中解析 powershell 样式的命令行参数 [重复]
《现代命令行工具指南》2. 查看进程:让查看进程变得才貌双绝 - procs