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

问题描述 投票:1回答:1

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

getopt -o v

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

getopt
1个回答
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"

试试这个,希望这很有用

© www.soinside.com 2019 - 2024. All rights reserved.