为什么命令行选项有短选项和长选项?

为什么命令行选项有短选项和长选项?

大多数 unixoid 命令都提供命令行选项的短选项和长选项,例如ls -als --all,或ls -Als --almost-all。为什么存在这两种方式?一种输入起来更短,另一种更容易阅读和理解。但每次我编写 shell 脚本时,我都需要决定要使用哪一种。知道为什么存在这两种选择吗?哪一个是第一个,为什么引入另一个。例如,在 DOS/Windows 上几乎只有不区分大小写的单字母选项。

答案1

最初只有单字符选项。有些程序接受多字符选项,但仍然使用单破折号。据我所知,双破折号多字符选项来自GNU;之所以引入它们,是因为它们更易读,而且通常更容易记住(你可以有超过 52 个选项)。现在许多程序都同时具有这两种选项:当你在命令行上输入并记住字符时,可以使用短选项;如果你只记得较长的选项名称,则可以使用长选项来在脚本或命令行上使用。

答案2

我认为使用不同方式指定参数(短和长)的另一个目的是,在输入时,Unix/Linux 命令行用户喜欢使用尽可能短的命令。然而,这些命令可能会变得晦涩难懂,如果使用这些短版本编写脚本,它们以后可能会变得难以理解。使用长版本可以使相同的命令更易读,更容易被非专业人士理解此命令的专家,特别是如果此命令实际上是一个本地编写的脚本而不是众所周知的命令。

答案3

您可能猜想这只是个人喜好问题。在命令行中输入时,可能更喜欢使用短选项,尤其是在同时运行选项的情况下(例如ls -AL)。长选项更能表达意图,因此您在阅读时无需查阅手册页ls --almost-all --dereference

当然,随着经验的积累,您可能会发现-A-L简短选项都已广为人知,不需要额外的文档。尤其是在复杂的命令中,该命令可能以有趣的方式将多个命令与求值、重定向等结合起来。在这种情况下,您可能更喜欢简洁而不是文档。

相关内容