命令行风格

-
-
2024-07-18

Unix/Posix风格

也叫短选项风格,是最原始的风格,选项是以连字符-开头的单个字符,注意是一个字符,而不是一个单词。

如果选项后面不带参数,则被称之为模式选项。模式选项是可以组合在一起使用的。例如:如果-a和-l是模式选项,那么-al或-la就都正确。

如果选项需要带参数,则称之为参数选项。这些参数要紧接在这个选项后面,通常用空格隔开。

最初的Unix风格是在缓慢的ASR-33电传打字机上演变而来的,这使得简洁成为一种美德,因此是单字母选项。按住shift键需要额外的精力,因此偏爱小写,并使用-,而不是可能更合乎逻辑的+来启用选项。

 

GNU风格

也叫做长选项风格,选项使用两个连字符--开头的单词,如:ls --all

如果选项需要带参数,则使用空格或者=将参数和选项分开。如:ls --sort timels --sort=time

这种风格的出现是因为仅仅26个字母,即使算上大小写也只有52个,不够一些复杂的GNU程序使用。另外一点是相比于单字符的Unix/Posix风格,GNU风格更容易理解,因为出现的不再是缩写的字母。

BSD 风格

和POSIX/UNIX风格相比,其选项使用单个字符,且不带任何前缀。如ps a。如果是多个不带参数的选项,也可以组合在一起,如ps aux

如果选项需要带参数,也同POSIX/UNIX风格一样,选项参数紧跟在这个选项后面,可以使用空格分开,也可以不用空格。如ps U rootps Uroot的作用是一样的。

其他

上面三种风格是最常见的,绝大多数程序的命令是属于上述中的一种,甚至可以同时接受这三种风格的命令行,如ps ,tar,但除此之外,还有小部分命令的参数风格,不属于上面的任何一种。

比如java -version,像这样命令行,其选项通常以单个连字符-开头,后跟一个单词或字符来表示选项。有的程序员称之为X toolkit风格。其实这种概括并不是很准确,我通过查阅资料得知:X toolkit风格的命令行是指,在X窗口系统中使用X toolkit库进行解析和处理的命令行参数和选项的风格。
它首先过滤并处理某些设置显示效果的选项,如-display-geometry,并将剩余的命令行参数传递给应用程序进行解析和处理。可见,X toolkit风格的重点是有一个过滤的流程。

万事万物都有例外,总有的软件供应商喜欢特立独行,像java - version这样风格的命令行,目前并无一个被大多数程序员认可的分类名称,你可以叫它X toolkit风格,也可以像我这样,直接称呼它为Java风格,谁让我对Java语言更熟悉呢。

“您的支持是我持续分享的动力”

微信收款码
微信
支付宝收款码
支付宝

目录