Arrays 将带空格的变量传递到数组中

Arrays 将带空格的变量传递到数组中,arrays,bash,Arrays,Bash,我正在用bash脚本解析一个HTML页面并提取(使用grep和sed) 作为解析循环中的$str,后跟 array+=($str) 当使用 for each in "${array[@]}" do echo "$each" done 我最终得到了 string number one string number .... 很明显,在数组中添加新元素时,空格被用作分隔符,但我似乎不知道如何将整个字符

我正在用bash脚本解析一个HTML页面并提取(使用
grep
sed

作为解析循环中的
$str
,后跟

    array+=($str)
当使用

    for each in "${array[@]}"
    do
        echo "$each"
    done
我最终得到了

    string
    number
    one
    string
    number
    ....

很明显,在数组中添加新元素时,空格被用作分隔符,但我似乎不知道如何将整个字符串作为元素传递

为避免在空白处拆分数组的每个元素,应双引号引用变量:

array+=("$str")

除非证明不是这样,否则未加引号的参数扩展是错误的。我发现你的评论很搞笑,而且非常重要,要将其提交到memory@chepner,谢谢你的评论。我确信我在测试中测试了引号,显然不是。谢谢你的帮助!
array+=("$str")