使用标准格式在 GNU/Linux 上打印 --help 文本

Printing --help text on GNU/Linux with the standard format

在 GNU/Linux 终端上,当我将 --help 添加到来自 GNU 包的命令时,我得到了一个格式非常一致的帮助文本。这些帮助文本以这种格式列出了该命令接受的选项:

option characters, long options ............ [aligned] explanation of the option

例如,这是 man 命令的帮助文本的一部分:

Usage: man [OPTION...] [SECTION] PAGE...

  -C, --config-file=FILE     use this user configuration file
  -d, --debug                emit debugging messages
  -D, --default              reset all options to their default values
      --warnings[=WARNINGS]  enable warnings from groff

 Main modes of operation:
  -f, --whatis               equivalent to whatis
  -k, --apropos              equivalent to apropos
  -K, --global-apropos       search for text in all pages
  -l, --local-file           interpret PAGE argument(s) as local filename(s)
  -w, --where, --path, --location
                             print physical location of man page(s)
  -W, --where-cat, --location-cat
                             print physical location of cat file(s)

我想知道是否有一种标准的方式(可能被 GNU 软件包使用)以相同的格式打印,而不必处理制表位等。我从 [=24= 中找到了 getopt ] API 来解析这些选项,但我找不到打印选项列表的方法。

GNU 工具使用 argp,它是 GNU C 库的一部分。它提供了比 getopt 更多的选项,包括帮助。

参见:https://www.gnu.org/software/libc/manual/html_node/Argp.html