linux命令行参数处理

时间:2021-06-06 14:27:58
摘要:Linux 遵循一种统一的命令行格式,通常有两种表达方式:短格式 vs 长格式。短格式是由一个-加上字符组成,如 -h、-v、-l filepath等等。而长格式是由两个-加一个单词组成,如 --help、--version、--load filepath等等。 ① 短格式的命令选项:用一个-和一个...

  Linux 遵循一种统一的命令行格式,通常有两种表达方式:短格式 vs 长格式。短格式是由一个"-"加上字符组成,如 -h、-v、-l filepath等等。而长格式是由两个"-"加一个单词组成,如 --help、--version、--load filepath等等。

 

  ① 短格式的命令选项:用一个“-”和一个单个英文字母表示,如“-a”。

  ② 长格式的命令选项:用两个“-”和一个英文单词表示,如“--help”。

 

  大多数Linux命令对于同一功能的实现会分别提供短格式和长格式两种格式的选项。短格式选项结构简单,输入快捷;长格式选项意义明确,容易记忆。

  ◇ POSIX标准中关于程序名、参数的约定 ◇

  程序名不宜少于2个字符且不多于9个字符。

  程序名应只包含小写字母和阿拉伯数字。

  选项名应该是单字符或单数字,且以短横 "-" 为前缀。

  多个不需要选项参数的选项,可以合并,如 foo -a -b -c 等价于 foo -abc。

  选项与其参数之间用空白符隔开。

  选项参数不可选。

  若选项参数有多值,要将其并为一个字串传进来,如 myprog -u "arnold joe jane"。

  选项应该在操作数出现之前出现。

  特殊参数 "--" 指明所有参数都结束了,其后任何参数都认为是操作数。

  选项如何排列没什么关系。对互斥选项,若操作结果有覆盖关系,则最后一个选项起作用。

  允许操作数的顺序影响程序行为,但需要作文档说明。

  读写指定文件的程序应该将单个参数'-'作为有意义的标准输入或输出来对待。

 

  ◇ GNU长选项约定 ◇

  对于已经遵循POSIX约定的GNU程序,每个短选项都有一个对应的长选项。

  额外针对GNU的长选项不需要对应的短选项,仅仅推荐要有。

  长选项可以缩写成保持惟一性的最短的字串。

  选项参数与长选项之间或通过空白字符活通过一个'='来分隔。

  选项参数是可选的(只对短选项有效)。

  长选项允许以一个短横线为前缀。