当我想向我的程序添加一个选项并收到已在使用中的-h
错误时,我第一次偶然发现了这一点:-h
add_help=True
,Python自动创建参数和argparse
的帮助页面。-h
--help
但对于大多数程序来说,同时使用-h
和--help
来显示帮助页面并不是这样,不是吗?哪些流行命令甚至-h
缩写为--help
?我查看了一些命令,通常它是缩写--human-readable
或另一个与帮助无关的选项。用于-h
帮助消息不适用于ls
、cd
、df
和diff
例如 - 只是我测试过的几个命令,当然不是详尽或有代表性的列表,而是非常流行的命令。
历史上可能-h
已被用作显示帮助页面的默认参数,并且--help
只是后来才出现?man
页面从哪里来info
?
如果这是流行的默认设置,我不想通过使用-h
帮助页面以外的其他内容来迷惑用户。然而,就我个人而言,我从未使用过-h
并且一直在使用--help
.
答案1
-h
是一个非常老的习俗。在 DOS 系统中,您也经常会看到-?
或/?
。
不要听那些这么说的人男人页面适合新手。它们非常有价值,并且已经添加到 Unix 系统中1971年Unix 诞生仅两年后。它们早在 1973 年就已经用 troff 排版了。现在仍然需要符合 POSIX 标准(但可能是 的别名info
)。它有一个很悠久的历史遗憾的是,它并没有引起当今网络狂热世界的更多兴趣。斥责手册页或其用户的人经常“忘记”(不会被打扰)自己创建它们。文档是重要的。
不幸的是,Linux 上的手册页保存得不太好,因此许多用户认为它们已经过时了。但在 FreeBSD 上(我相信其他 BSD 也是如此),它们会保持最新状态,并且是了解系统和命令的最佳方式。
信息来自 20 世纪 80 年代末的 GNU 背景,并且是基于超文本的。它在 Linux 系统上很流行,但不幸的是集成得不太好。您会发现许多工具没有信息页面。
--help
又是一个 GNUism 并被引入长选项在里面GNU C 库90年代初。这是后来的约定 - 但如果您支持长选项,那么这是一个很好的约定。
对我来说,一个好的程序会使用 发出非常简短的命令行选项摘要-h
。如果您的程序支持长选项,则执行相同的操作--help
,然后将正确的指令放入手册页中。
然而,这些只是惯例。但即使你不想跟随他们 --h
除了帮助之外,我也会非常谨慎地使用任何东西。或者至少确保它是非破坏性选项,例如df -h
.
今天我会写一个手册页文档。它相当简单,并且有很多工具可以将其处理为 Markdown、PDF 或 HTML,以便在其他地方使用。
相关引用来自文档
没有手册的实用程序根本没有任何用处。
答案2
从历史上看,程序内存是宝贵的,没有空间容纳诸如“帮助”消息之类的废话。真正的Unix大佬都熟记于心,新手则使用man(1)。几乎不记得合理的错误消息(ed(1) 中臭名昭著的“?”)任何错误,抄送(1)的仅有的消息“第 N 行语法错误”)。当内存变得(更)充足时,一些程序开始接受“-h”作为帮助/最小使用说明。 GNU 引入了很长的“--options”,并且经常引入“--help”。其他人则使用“-u”或“-usage”,或者只是为任何无法识别的选项提供帮助。