【发布时间】:2019-04-04 18:12:34
【问题描述】:
所以,我有两个数组:
arr1=("A" "C" "E")
arr2=("B" "D" "F")
我有这样的嵌套循环:
for i in $(seq 1 $numberOfYears);
do
echo "$i"
for j in "${arr1[@]}";
do
echo ${arr1[j]} <---Keeps printing "A"
echo ${arr2[j]} <---Keeps printing "B"
done
done
编程 shell 脚本的新手。什么会导致内部 for 循环正确地遍历 array1
当您像这样引用元素时:$j 但不是这样的${arr1[j]} 和${arr2[j]} ..?在所有的
我的阅读/搜索,这应该正确地遍历两个数组。
我的预期结果:
预期
1ABCDEF
2ABCDEF
3ABCDEF
实际
1ABABAB
2ABABAB
3ABABAB
如果我将${arr1[j]} 更改为$j,它可以正常工作,但我还需要获取 arr2 的元素,所以我必须像${arr2[j]} 一样获取它。
【问题讨论】:
-
您可能正在寻找
for j in "${!arr1[@]}"...。 -
也许关联数组会更好用?
declare -A arr=([A]=B [C]=D [E]=F); for k in "${!arr[@]}"; do echo $k ${arr[$k]} ; done.