下面是我的代码,我有两个数组... array和array2。

#!/bin/bash

array = (1 3 5 7 9)
array2 = (2 4 6 8 A)

for i in "${array[@]}"
do
  echo $i
  for i in "${array2[@]}"
  do
    echo $i
  done
done


我想在运行脚本时将以下输出回显到控制台上:

1
2
3
4
5
6
7
8
9
A


但是我得到以下信息:

1
2
4
6
8
A
3
2
4
6
8
A
5
2
4
6
8
A
7
2
4
6
8
A
9
2
4
6
8
A


我真的想通过像C / C ++这样的嵌套循环来完成以下工作:

char array[5] = {1, 3, 5, 7, 9};
char array2[5] = {2, 4, 6, 8, A};

for (int i=0; i<5; i++){
  std::cout << array[i] << std::endl;
  std::cout << array2[i] << std::endl;
}


但是,如何使用相同的迭代器变量i控制两个不同的数组?

最佳答案

循环遍历索引而不是元素:

#!/bin/bash

array=(1 3 5 7 9)
array2=(2 4 6 8 A)

for i in "${!array[@]}"
do
  echo "${array[i]}"
  echo "${array2[i]}"
done

关于arrays - Linux Bashrc嵌套循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38255481/

10-15 03:27