如何获得getopt选项的多个论证?

时间:2017-05-11 05:13:41

标签: bash shell getopt

我需要帮助来编写getopt函数来处理一个选项的多个参数,如下例所示,感谢您的支持。

示例:

./getopt.sh -s abcd -s efgh -s ijkl -s bdnc -e test

这是我到目前为止

#!/bin/bash
OPTS=`getopt -o s:e:h -n '$0' -- "$@"`

eval set -- "$OPTS"

while true; do
  case "$1" in
    -s ) SOURCE=$1 ;shift ;;
    -h )    echo "$0 -s source -e enviroment"; shift ;;
    -e ) ENV=$1; shift; shift ;;
    * ) break ;;
  esac
done

if [ $ENV='TEST' ];then
        echo "execute on test with $SOURCE"
elif [ $ENV='DEV' ];then
        echo  "execute on dev with $SOURCE"
else
        exit
fi

但在这里我想多次执行-s。

1 个答案:

答案 0 :(得分:0)

您可以多次使用相同的选项,并将所有值添加到数组中。 喜欢:

while getopts "o:" i; do
    case $i in
        o) arr+=("$OPTARG");;
        #...
    esac
done