1: #!/bin/bash
2:
3: usage()
4: {
5: echo "Usage:"
6: echo -e "\t-a\t val "
7: echo -e "\t-b\t val"
8: }
9: t1=""
10: t2=""
11: t3=""
12: while getopts "a:b:c:d:e:f:g:h" opt;do
13: case $opt in
14: a ) t1=$OPTARG;echo $t1;;
15: b ) t2=$OPTARG;echo $t2;;
16: c ) t3=$OPTARG;echo $t3;;
17: h ) usage;exit 0;;
18: esac
19: done
./getopt_test.sh –h 结果如下
./getopt_test.sh -a 33 -b "This is a test"
./getopt_test.sh -a
从上面的示例看出,getopts 用来获取命令行的参数。如果选项字符串中的字符后面带有“:”(冒号),则预期此选项将带有参数。当选项需要选项参数时,getopts 命令就将其置于变量 OPTARG 中。
对于以冒号的必须跟值,没有将提示错误。
同时注意,后面是两个分号结束“;;”