因此,我尝试将 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