如何访问bash中的数组的均匀元素



我想呼应bash中数组的均匀元素,如何实现?

假设您的数组不是稀疏的(没有间隙(,即使您开始从1开始计数(而不是像Bash一样(,您可以在索引上使用循环进行操作:

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]=%qn' "$index" "${array[index]}"
done
array[0]=a
array[2]=c
array[4]=e
array[6]=g

如果不是您需要的,那么编辑您的问题以包括一些示例输入,预期输出以及您到目前为止尝试的方法将有很大帮助。

最新更新