Linux getopts 命令浅析

http://bestchenwu.iteye.com/blog/1074200


 对于getopts,例如对于一个命令 常见形式command -[很多选项]  file

    如何获取那里面的每个选项,并且规定有些选项必须指定的呢?这些都需要依靠getopts命令来完成。

    常见的应用形式:getopts  options_string option(这里的option表示把刚才读取的选项值存放到option中)

    例如: 下面一个例子用于获取脚本的afgh等参数,并提示一些信息

 

Java代码   收藏代码
  1. #!/bin/bash  
  2. ALL=false  
  3. HELP=false  
  4. FILE=false  
  5. VERBOSE=false  
  6. CHAR=false  
  7. while getopts :ahfgc: OPTION  
  8. do  
  9.     case $OPTION in   
  10.     a)   ALL=true  
  11.          echo "ALL is $ALL"  
  12.          ;;  
  13.     h)   HELP=true  
  14.          echo "HELP is $HELP"  
  15.          ;;  
  16.    f)    FILE=true  
  17.          echo "FILE is $FILE"  
  18.          ;;  
  19.    c)    VERBOSE=true  
  20.          CHAR=$OPTARG  
  21.          echo "CHAR is $CHAR"  
  22.          ;;  
  23.    \?)   echo "`basename $0 ` needs -[a|h|f] -c[args] file"  
  24.          ;;  
  25.    esac  
  26. done  

 

    注意这个脚本里的:afghc:  的冒号  前面的冒号表示屏蔽脚本的系统提示错误,转而使用自己提供的错误提示方式。后面的冒号表示c这个选项需要指定具体的参数值,同时需要获取到参数值后将参数值存放到变量OPTARG中,供以后读取用。

    \?   ?表示捕捉任意单字符,这里捕捉错误,并打印相应信息。 basename $0 表示提取脚本的名称 (例如basename ./test.sh 将将输出test.sh)

   在运行这个脚本的时候,有以下几种情况:

 

 

Java代码   收藏代码
  1. [chenwu@localhost unit20-arguments]$ ./getopts.sh -ah -c 3  
  2. ALL is true  
  3. HELP is true  
  4. CHAR is 3  
  5.   
  6. [chenwu@localhost unit20-arguments]$ ./getopts.sh -ah -c  
  7. ALL is true  
  8. HELP is true  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值