我有两个 for 循环:
for i in 0 1 2 3; do echo $i;done
for j in a b c d; do echo $j;done
0
1
2
3
a
b
c
d
我希望输出是:
0
a
1
b
2
c
3
d
怎么做?
我有两个 for 循环:
for i in 0 1 2 3; do echo $i;done
for j in a b c d; do echo $j;done
0
1
2
3
a
b
c
d
我希望输出是:
0
a
1
b
2
c
3
d
怎么做?
您可以使用要首先迭代的值定义两个长度相同的数组。然后您可以遍历其中一个数组的索引并在两者中查找它们:
正如您在前两行中看到的那样,通过在括号中分配元素列表来定义数组。
for 循环遍历,它返回数组变量
${!arr1[@]}
的所有 ([@]
) 索引 ( ) 的列表。这可以在这里使用,因为我们假设两者和具有完全相同的索引,因为它们是用相同数量的元素定义的。理论上,数组可以有不同的长度,甚至有“洞”,即中间未分配的索引,但这里不是这种情况,所以我们不在乎。!
arr1
arr1
arr2
在变量值定义的位置访问数组的特定元素值
$i
可以通过键入${arr1[i]}
.另一种可能性是使用关联数组(又名哈希又名字典),然后对其进行迭代并分别检索键和值:
输出: