Bash成对数组扩展

时间:2014-12-29 05:57:43

标签: arrays bash shell unix scripting

我有两个相同长度的数组如下:

arr1[1]=2
arr1[2]=5

arr2[1]=x
arr2[2]=y

我正在尝试创建一个类似" 2 x 5 y"的字符串。

由于数组的长度可以是变量,有没有办法在不使用循环和字符串连接的情况下执行此操作(如参数扩展或其他内容)?

1 个答案:

答案 0 :(得分:1)

您可以将paste流程替换

一起使用
arr1[1]=2
arr1[2]=5

arr2[1]=x
arr2[2]=y

s=$(paste <(printf "%s\n" "${arr1[@]}") <(printf "%s\n" "${arr2[@]}") |
    tr '[[:space:]]' ' ')
echo "$s"
2 x 5 y