getopt中的optstring是否区分大小写?

时间:2019-04-08 06:09:25

标签: getopt

下面的v也会解析-V选项吗?

getopt -o v

甚至可以解析大写的命令选项吗?

1 个答案:

答案 0 :(得分:0)

您的问题的答案-getopt区分大小写,通常不建议在脚本参数中使用不同的大小写-可能会造成混淆

您可以考虑在其中使用multichar输入。

尝试阅读有关getopt --longoptions的信息。

请参阅以下示例。

# Read command line options
ARGUMENT_LIST=(
    "input1"
    "input2"
    "input3"
)



# read arguments
opts=$(getopt \
    --longoptions "$(printf "%s:," "${ARGUMENT_LIST[@]}")" \
    --name "$(basename "$0")" \
    --options "" \
    -- "$@"
)


echo $opts

eval set --$opts

while true; do
    case "$1" in
    --input1)  
        shift
        empId=$1
        ;;
    --input2)  
        shift
        fromDate=$1
        ;;
    --input3)  
        shift
        toDate=$1
        ;;
      --)
        shift
        break
        ;;
    esac
    shift
done

这就是调用脚本的方式

myscript.sh --input1 "ABC" --input2 "PQR" --input2 "XYZ"

尝试一下,希望这很有用