我可以使用bash将数组附加到字符串中吗?

时间:2017-06-21 01:54:49

标签: arrays bash

我想将每个数组元素附加到此字符串中,

arr=(col1 col2 col3)
str="to/path/${arr[@]}

输出就像这样

to/path/col1
to/path/col2
to/path/col3
你有什么想法吗?

1 个答案:

答案 0 :(得分:4)

使用bash parameter expansion

arr=(col1 col2 col3)
str=${arr[@]/#/\/path\/to\/}
echo "$str"
/path/to/col1 /path/to/col2 /path/to/col3

正如Charles所说,我们正在从一个数组转换为一个字符串,如果你想迭代结果会产生负面影响。在这种情况下,试试这个:

arr=( "col 1" "col 2" "col 3" )
newarr=()
for elem in "${arr[@]}"; do
    newarr+=( "/path/to/$elem" )
done
printf "%s\n" "${newarr[@]}"