SHELL:getopts用法介绍

getopts用法介绍

 

getopts optstring varname [arg ...]

 

optstring  option字符串,会逐个匹配

varname    每次匹配成功的选项

arg        参数列表,没写时它会取命令行参数列表

 

$OPTIND    特殊变量,option index,会逐个递增

$OPTARG    特殊变量,option argument,不同情况下有不同的值

 

 

细则1optstring”:“开头时getopts会区分invalid option错误和miss option argument错误。

      invalid option时,varname会被设成?$OPTARG是出问题的option

      miss option argument时,varname会被设成:$OPTARG是出问题的option

      如果optstring不以”:“开头,invalid option错误和miss option argument错误都会使

      varname被设成?$OPTARG是出问题的option

 

细则2:当optstring中的字母跟”:“时,表明该option可接参数,参数(argument)放在$OPTARG中;

      如果缺参数,且optstring是以”:“开头,则varname的值会是:$OPTARG是该option

      否则varname的值是?$OPTARG是该option(参照细则1)

 

简单的sample:

 

 

#!/bin/bash

 

SKIPBLANKS=

TMPDIR=/tmp

CASE=lower

 

while getopts :bt:u arg

do

    case $arg in

        b) SKIPBLANKS=TRUE

                  echo "If skip blanks? $SKIPBLANKS"

                  ;;

 

        t) if [ -"$OPTARG" ]

                    then

                    TMPDIR=$OPTARG

                    echo "Temp dir is $TMPDIR."

                  else

                    echo "$0: $OPTARG is not a directory." >&2

                    exit 1

                  fi

                  ;;

 

        u) CASE=upper

                  echo "Case sensitivity is $CASE."

                  ;;

 

        :) echo "$0: Must supply an argument to -$OPTARG." >&2

                  exit 1

                  ;;

 

        \?) echo "Invalid option -$OPTARG ignored." >&2

                  ;;

        esac

done

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值