命令行参数中的短选项和长选项

在命令行中输入命令,有时候用一个中划线 -(短选项),有时候用两个 --(长选项),它们之间有什么区别吗?

短选项(Short Options)

短选项用一个单独的字母作为标志,通常也是一个选项英语的缩写。例如:

  • -a表示所有(all)

  • -c 表示命令(command)

  • -f 表示文件(file)

  • -V 表示版本(version)

多个短选项可以连写,如ls -a -l 可以写成 ls -al,而 git -am 也等价于 git -a -m

长选项(Long Options)

单独字母的数量毕竟有限,会不够用,而且表达的意思不够明确,于是就有了长选项--,后面可以跟一串单词,如 --version--all。参数可以放在后面用空格隔开,也可以使用 =,如 --file foo.bar 等价于 --file=foo.bar,短选项和长选项可以表达相同的意思,例如:

npm install express --save 
npm install express -S
复制代码

其他用法

有时候会看到 - 或者 -- 独立存在,即后面没有紧跟着单词或字母,是为了分隔 [选项] 和 [参数],例如:

wget -O - https://www.baidu.com/
复制代码

这里的 - 代表输出到 stdout 。

有时是为了给前一个程序的选项或参数里的程序传参数,比如:

pm2 start a.js -- --port 80
复制代码

这里 -- 后面的参数其实是传给 a.js 的,而不是给 pm2 的。 -- 代表后面的参数不解析,最常见的场景是在 npm scripts 中进行设置:

"start": "egg-scripts start" 
复制代码

那当你执行下面的命令时:

npm start -s -- --workers=1
复制代码

第一个 -s 是 npm 本身的参数,代表静默,后面的 workers 参数不解析,直接传递进去,相当于执行:

egg-scripts start --workers=1
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享