任何针对“-h”和“--help”的规则

任何针对“-h”和“--help”的规则

有些命令和程序用来-h显示帮助,有些则使用--help,还有一些则同时识别两者。这让我很抓狂。有什么规则可以选择正确的吗?

答案1

恐怕没有规则:责怪历史。

最初 DOS 及其前身使用/?,而 Unix 则使用 来-作为选项指示符,因为/是目录分隔符;由于 shell 可以-?通过文件名扩展来扩展为不同的字符串,因此-h成为了常态。

到目前为止,一切都比较简单。

cmd许多命令中保留了/?约定,但是从 Unix/Linux 转录的命令可能使用-h,/h/help

与此同时,在 Linux 中,一些命令变得如此包罗万象,以至于大多数字母都用于选项,因此--选项使用更冗长的 ,而保留单个-作为更常见选项的替代。这就是冲突开始的地方:在命令中lsdu人们认为-h最好用作冗长的 的同义词--human-readable,因为它可能比 help 更频繁地被调用。

更复杂的是,一些程序的本地语言版本已经翻译了参数,因此在法语中,帮助选项变成-a援助者或者助手, 例如。

经常起作用的一件事是--:这几乎总是一个无效的选项,程序通常会报告错误,然后提供完整的帮助或告诉您帮助选项是什么。

最终,用户还是要听从程序员的指令:Windows 和 Linux 都拥有由大量不同的人编写的实用程序,而我们都在他们的掌控之中。

我希望它有所不同,但最终我们必须利用现有资源,或者花一生的时间维护我们自己的版本。

答案2

这是由于以下原因:

首先,大多数Linux命令通过使用以下功能来支持参数:

getopt() 和 getopt_long()。

getopt() 支持用“-”字符来区分各种选项

长选项,即 getopt_long()(例如:--help)是一个 GNU 扩展,它提供了更高的可读性,也有助于理解参数的含义。

getopt_long() 支持短参数类型和长参数类型,这就是为什么许多命令可以同时支持这两种参数类型。

人们希望支持这两个参数的另一个原因是:保持向后兼容性。

韓國語:http://en.wikipedia.org/wiki/Getopt

希望以上能有所帮助。

相关内容