如果没有,是否存在一个事实上的标准?基本上,我正在编写命令行帮助文本,如下所示:

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

我基本上只是阅读了各种工具的帮助文本,但是否有指南列表或其他内容?例如,我是用方括号还是圆括号?如何使用空格?如果参数是一个列表呢?谢谢!


当前回答

GNU编码标准是一个很好的参考。本节处理——help的输出。在这种情况下,它不是很具体。打印一个表,显示短选项和长选项,并给出简洁的描述,可能不会出错。为了可读性,尽量让所有参数之间的间距合适。您可能希望为您的工具提供一个手册页(也可能是信息手册),以提供更详细的解释。

其他回答

GNU编码标准是一个很好的参考。本节处理——help的输出。在这种情况下,它不是很具体。打印一个表,显示短选项和长选项,并给出简洁的描述,可能不会出错。为了可读性,尽量让所有参数之间的间距合适。您可能希望为您的工具提供一个手册页(也可能是信息手册),以提供更详细的解释。

是的,你的思路是对的。

是的,方括号是可选项目的常用指示符。

通常,正如您所勾勒的那样,在顶部有一个命令行摘要,后面是详细信息,理想情况下每个选项都有示例。(您的示例显示了每个选项描述之间的行,但我假设这是一个编辑问题,并且您的实际程序输出的是缩进的选项列表,中间没有空行。这将是在任何情况下都要遵循的标准。)

一个新的趋势(也许有一个POSIX规范可以解决这个问题?)是消除文档的手册页系统,并将手册页中的所有信息作为程序的一部分—帮助输出包括在内。这个额外的内容将包括更长的描述,解释的概念,使用示例,已知的限制和错误,如何报告错误,以及可能的相关命令的“参见”部分。

我希望这能有所帮助。

我会以官方项目为例,比如tar。在我看来,帮助味精。需要尽可能的简单和描述性。使用的例子也很好。对“标准帮助”没有真正的需求。

没有标准,但是http://docopt.org/已经创建了他们版本的命令行工具的帮助文本规范。

通常,你的帮助输出应该包括:

Description of what the app does Usage syntax, which: Uses [options] to indicate where the options go arg_name for a required, singular arg [arg_name] for an optional, singular arg arg_name... for a required arg of which there can be many (this is rare) [arg_name...] for an arg for which any number can be supplied note that arg_name should be a descriptive, short name, in lower, snake case A nicely-formatted list of options, each: having a short description showing the default value, if there is one showing the possible values, if that applies Note that if an option can accept a short form (e.g. -l) or a long form (e.g. --list), include them together on the same line, as their descriptions will be the same Brief indicator of the location of config files or environment variables that might be the source of command line arguments, e.g. GREP_OPTS If there is a man page, indicate as such, otherwise, a brief indicator of where more detailed help can be found

进一步注意,同时接受-h和——help来触发这条消息是一种很好的形式,如果用户弄乱了命令行语法,例如遗漏了一个必需的参数,你应该显示这条消息。