在我的自定义 shell 脚本的用法字符串中,我还应该显示 --help 和 --version 吗?

hel*_*hod 6 bash options shell-script user-interface

我目前正在开发一个名为 的 shell 脚本,up当使用--help. 输出如下所示:

$ up --help
usage: up [-n levels][--help][--versions][basename]...
Run Code Online (Sandbox Code Playgroud)

这看起来没问题,但我想知道我是否真的需要显示--help--version选项,因为它们是一个被广泛接受的标准,似乎只会给使用字符串增加噪音。

Sil*_*ker 12

这完全取决于您,但大多数程序都是这样做的

program --help

Usage: program [<options>][<arguments> ...]

Options:
--help         show this message, then exit
--something    after some spaces for alignment, an explenation follows.
Run Code Online (Sandbox Code Playgroud)

您应该查看大多数程序(这也可用于编程语言)和脚本使用的getopt。这样,使用您的脚本的人就不会感到困惑。

最后,您应该添加所有选项,即使它们对您来说似乎是微不足道的。所以,我会在用法的选项部分添加 --help 和 --version 。

  • +1 大多数 gnu 工具也符合@silverrocker 的风格。当脚本/命令在查看它们的用法时具有相似的外观和感觉时,总是很好。看看 `ls --help` 和 `du --help` 如何展示他们的使用信息并跟随他们的脚步。 (2认同)
  • `getopt` **command** **not** 在标准 Unix 工具箱中。存在具有不同接口的几种不同实现。`getopts` 是标准的,但该标准不包括 GNU 风格的长选项。有一个 getopts_long.sh [那里](http://stchaz.free.fr/getopts_long.sh) 用于作为 shell 函数的 POSIX 实现。 (2认同)