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 结果如下

image

./getopt_test.sh -a 33 -b "This is a test"

image

./getopt_test.sh -a

image

 

从上面的示例看出,getopts 用来获取命令行的参数。如果选项字符串中的字符后面带有“:”(冒号),则预期此选项将带有参数。当选项需要选项参数时,getopts 命令就将其置于变量 OPTARG 中。

对于以冒号的必须跟值,没有将提示错误。

同时注意,后面是两个分号结束“;;”

refer:http://blog.sina.com.cn/s/blog_8a9ca5470101541v.html

posted on 2013-03-28 09:05  @且听风吟@  阅读(347)  评论(0编辑  收藏  举报