bash中CLI的正确语法,它将接受带空格的参数

问题描述 投票:0回答:1
while getopts abp: optchar; do
    case "${optchar}" in

    a) # an option
        export OPTION_A=1
        ;;

    b) # Yet another option
        export b=1
        ;;

    p) # An option to supply player names to the function
        IFS=',' read -r -a PLAYER_NAMES <<<"${OPTARG}"
        ;;
    esac
done

for name in "${PLAYER_NAMES[@]}"; do
    echo ${name}

现在,如果为'players'关键字参数提供逗号分隔的列表,则该函数将忽略以空格分隔的参数。例如,如果您运行:

bash testexp.sh -p sherman,wilson, taylor

您会得到

sherman
wilson

但是由于没有将taylor的名字添加到数组变量中,因此不包括taylor。

如何使cli解析器忽略多余的空间,以便输出如下?

sherman
wilson
taylor
linux bash shell command-line-interface command-line-arguments
1个回答
0
投票

使用撇号:

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