如果没有,是否有事实上的标准?基本上我正在编写命令行帮助文本,如下所示:
usage: app_name [options] required_input required_input2
options:
-a, --argument Does something
-b required Does something with "required"
-c, --command required Something else
-d [optlistitem1 optlistitem 2 ... ] Something with list
我从基本上只是阅读各种工具的帮助文本中做到了这一点,但是有一个指南列表还是什么?例如,我使用方括号还是括号?如何使用间距?如果参数是一个列表怎么办?谢谢!
8 回答
通常,您的帮助输出应包括:
应用程序的功能说明
用法语法,其中:
使用
[options]
指示选项的位置arg_name
为必需的,单数的arg[arg_name]
为可选的单数argarg_name…
所需的arg可以有很多(这很少见)[arg_name…]
对于可以提供任何数字的arg请注意
arg_name
应该是一个描述性的短名称,在较低的蛇案例中一个格式良好的选项列表,每个:
有一个简短的描述
显示默认值(如果有)
如果适用,
显示可能的值
请注意,如果某个选项可以接受简短表单(例如
-l
)或长表单(例如--list
),请将它们包含在同一行中,因为它们的描述相同可能是命令行参数源的配置文件或环境变量位置的简要指示,例如
GREP_OPTS
如果有手册页,请指明,否则,可以找到可以找到更详细帮助的简要指示
另请注意,接受
-h
和--help
来触发此消息是一种很好的形式,如果用户弄乱了命令行语法,则应显示此消息,例如:省略必需的参数 .看看docopt . 它是记录(和自动解析)命令行参数的正式标准 .
例如...
微软有Command-Line Syntax
没有括号或大括号的文字
您必须键入的项目如图所示
<尖括号内的文字>
您必须为其提供值的占位符
[方括号内的文字]
可选项目
{大括号内的文字}
一套必需的物品;选一个
竖条(|)
互斥物品的分隔物;选一个
省略号(...)
可以重复的项目
我们正在运行Linux,一个主要是POSIX兼容的操作系统 . POSIX标准应该是:Utility Argument Syntax .
GNU编码标准对于这样的事情是一个很好的参考 . This section处理
--help
的输出 . 在这种情况下,它不是非常具体 . 打印显示短期和长期选项以及简洁描述的表格可能不会出错 . 尝试获取所有参数之间的间距以确保可读性 . 您可能希望为工具提供man
页面(可能还有info
手册)以提供更详细的说明 .微软有自己的Command Line Standard specification:
是的,你走在正确的轨道上 .
是的,方括号是可选项的常用指标 .
通常情况下,如您所示,顶部有一个命令行摘要,后面是详细信息,最好是每个选项的示例 . (您的示例显示了每个选项描述之间的行,但我认为这是一个编辑问题,并且您的真实程序输出缩进的选项列表,其间没有空行 . 这在任何情况下都是遵循的标准 . )
一个更新的趋势,(可能有一个解决这个问题的POSIX规范?),是消除了文档的手册页系统,并包括作为
program --help
输出一部分的手册页中的所有信息 . 这个额外的将包括更长的描述,解释的概念,使用示例,已知的限制和错误,如何报告错误,以及可能相关命令的'see also'部分 .我希望这有帮助 .
我会像tar这样的官方项目作为例子 . 在我看来帮助消息 . 需要尽可能简单和描述 . 使用的例子也很好 . 没有真正需要“标准帮助” .