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

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

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


当前回答

看一下docopt。它是用于记录(和自动解析)命令行参数的正式标准。

例如……

Usage:
  my_program command --option <argument>
  my_program [<optional-argument>]
  my_program --another-option=<with-argument>
  my_program (--either-that-option | <or-this-argument>)
  my_program <repeating-argument> <repeating-argument>...

其他回答

这可能有点离题,但我曾经写过两个小工具,使创建和维护命令行工具帮助页面更有效:

MAIN DOCLET,它通过处理源代码中的Javadoc注释,为Java程序的主方法生成HTML文档 HTML2TXT工具,将HTML文档格式化为纯文本(这是我们想要的帮助文本)

我将这两个工具集成到程序的MAVEN构建过程中,以便它们在每次构建时自动执行。

例如:

我的ZZFIND工具的相关源文件 构建项目的POM文件(并运行上面提到的两个工具) 使用——help命令行选项运行ZZFIND时的示例输出

希望这对其他人有用!?

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

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来触发这条消息是一种很好的形式,如果用户弄乱了命令行语法,例如遗漏了一个必需的参数,你应该显示这条消息。

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

看一下docopt。它是用于记录(和自动解析)命令行参数的正式标准。

例如……

Usage:
  my_program command --option <argument>
  my_program [<optional-argument>]
  my_program --another-option=<with-argument>
  my_program (--either-that-option | <or-this-argument>)
  my_program <repeating-argument> <repeating-argument>...

我认为命令行使用没有标准的语法,但大多数人都使用这样的约定:

微软命令行语法,IBM有类似的命令行语法


没有括号或大括号的文本 必须按所示输入的项 <尖括号内的文本> 必须为其提供值的占位符 [方括号内的文本] 可选项目 {括号内的文本} 一套必需的项目;选择一个 竖条{a|b} 互斥项的分隔符;选择一个 <file>… 可以重复的项目