Arrays 如何在bash中访问数组的偶数元素

Arrays 如何在bash中访问数组的偶数元素,arrays,bash,Arrays,Bash,我想回显bash中数组的偶数元素,这是如何实现的?假设您的数组不是稀疏的,不包含间隙, 假设您从1开始计数,而不是像bash那样从0开始计数,那么您可以通过索引上的循环来实现这一点: array=(a b c d e f g h) for index in "${!array[@]}"; do (( index % 2 )) && echo "${array[index]}" done : 产出: b d f h 假设您的数组不是稀疏的,不包含间隙, 假设您从1开始计数,

我想回显bash中数组的偶数元素,这是如何实现的?

假设您的数组不是稀疏的,不包含间隙, 假设您从1开始计数,而不是像bash那样从0开始计数,那么您可以通过索引上的循环来实现这一点:

array=(a b c d e f g h)
for index in "${!array[@]}"; do
  (( index % 2 )) && echo "${array[index]}"
done
:
产出:

b
d
f
h

假设您的数组不是稀疏的,不包含间隙, 假设您从1开始计数,而不是像bash那样从0开始计数,那么您可以通过索引上的循环来实现这一点:

array=(a b c d e f g h)
for index in "${!array[@]}"; do
  (( index % 2 )) && echo "${array[index]}"
done
:
产出:

b
d
f
h

假设您讨论的是索引数组而不是关联数组,并且希望偶数索引的值而不是偶数值-从零循环到数组大小,每次迭代时将索引增加2

借用@Camunsensei的例子:

array=(a b c d e f g h)
for (( index=0; index<${#array[@]}; index+=2 )); do
    printf 'array[%d]=%q\n' "$index" "${array[index]}"
done
array[0]=a
array[2]=c
array[4]=e
array[6]=g

如果这不是你需要的,那么编辑你的问题,包括一些样本输入,预期输出,到目前为止,您所尝试的方法会有很大帮助。

假设您讨论的是索引数组而不是关联数组,并且您希望偶数索引的值而不是偶数值-从零循环到数组大小,每次迭代时索引增加2

借用@Camunsensei的例子:

array=(a b c d e f g h)
for (( index=0; index<${#array[@]}; index+=2 )); do
    printf 'array[%d]=%q\n' "$index" "${array[index]}"
done
array[0]=a
array[2]=c
array[4]=e
array[6]=g

如果这不是您所需要的,那么编辑您的问题以包含一些示例输入、预期输出以及您迄今为止所尝试的内容将非常有帮助。

在迭代数组元素时,测试元素是奇数还是偶数。所以你会有一个for循环,如果有一个算术表达式。哪些部分有特定的问题?在迭代数组元素时,测试元素是奇数还是偶数。所以你会有一个for循环,如果有一个算术表达式。哪些零件有特殊问题?