getopts
是一个Bash built-in,可以用它来实现与getopt(3)
一致的参数解析功能。
注意它和getopt(1)
的区别。getopt
是一个单独的命令,而getopts
是bash内置命令。
关于option与argument的区别,我这里实在给不出准确的定义,只能根据自己的理解试着解释一下。
argument是通常所说的命令行参数,在C语言里就是argv数组,根据参数出现的顺序从argv[1]开始依次递增(argv[0]里是被执行的程序本身的程序名)。在Bash里,$0表示脚本的名称,$1开始往后是各个argument。
option有点混乱。我的理解是:一个Option是以-
(hyphen-minus character)或--
开头的字符串,它后面有可选的argument,如果有则只有一个。也就是说,一个option由一个或两个argument组成
根据上面的描述命令行参数(Arguments)可以分为3类(抱歉我这里会用比较山寨的方法来描述这三类,如果有对应的标准名称,请留言指出)
- Option with an ...
There are comments.