shell 字符串转数组

字符串转换为数组

test_words="abc def ghi"
#字符串转数组,空格是分割符
array_test_words=(${test_words// / })
#打印数组的长度
echo ${#array_test_words[@]}
#打印读出的内容
echo "-----打印出数组所有内容 -----"
for word in ${array_test_words[@]};do
    echo ${word}
done
#字符串不转换为数组,在循环实现以空格为分隔符打印每个成员
echo "-----打印出没有转换数组的内容 -----"
for word in ${test_words};do
    echo ${word}
done

#输出结果

3
-----打印出数组所有内容 -----
abc
def
ghi
-----打印出没有转换数组的内容 -----
abc
def
ghi

如果是字符串中间是以空格间隔,也可以直接如下写法

array_test_words=($test_words)