我该如何将 $OPTARGs 从一个参数添加到数组中

我该如何将 $OPTARGs 从一个参数添加到数组中

因此,我尝试将 optarg 中的值添加到数组中。我得到了:

arrays=()
while getopts a: args; do
  case $args in
    a) arrays+=$OPTARG;;
  esac
done
echo $arrays[@]

当我运行脚本 ./script -a foo bar 时,我得到返回

foo

知道如何添加更多价值吗?

答案1

$OPTARGS持有下一个单词. 如果您想要多个值

  • -a value按照@scott 的建议多次指定
  • 在命令行上提供引号中的多字符串:

    ./script -a "foo bar baz"
    

    然后,在脚本中

    array+=($OPTARG)   # OPTARG is **unquoted**
    

    检查它是否单独添加单词

    a=(one two three)
    value="four five six"
    a+=($value)
    echo ${#a[@]}        # prints 6
    

相关内容