命令行参数前的「-」和「--」区别

转自:https://www.zhihu.com/question/267095526/answer/319387178

简单来说,「-」和「--」是两种不同的命令行选项的风格。前者是传统的Unix风格的,后者是GNU风格的。

具体点来讲,起初Unix设计命令行程序时,需要将一个命令的『选项』(Options)和『参数』(Arguments)区分开来,就引入了「-」。

凡是以「-」开头的,就是选项。选项用一个单独的字母作为标志,通常也是一个选项英语的缩写。

例如,「-a」表示所有(all),「-c」表示命令(command),「-f」表示文件(file),「-V」表示版本(version)。

多个选项也可以连写,如「ls -A -l」可以写成「ls -Al」。

但是,单独字母的数量毕竟有限,会不够用,而且表达的意思不够明确。

于是就有了之后的GNU风格来完善上述的不足,使用「--」作为前缀,后面可以跟一串单词,如「--version」,「--all」。

选项自己的参数即可以放在后面用空格隔开,可以使用「=」,如「--file foobar.out」等价于「--file=foobar.out」。

这种GNU风格的选项常被称之为『长选项』(Long Options),而Unix风格的为『短选项』(Short Options)。

通常来说短选项都有与之对应的长选项,如「-a,--all」、「-V,--version」。

扫描二维码关注公众号,回复: 6685236 查看本文章

猜你喜欢

转载自www.cnblogs.com/a-s-m/p/11109294.html
今日推荐