You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中访问数组的偶数元素并将其输出?

Bash中访问数组偶数元素并输出的方法

嘿,我来帮你搞定这个问题~ 在Bash里处理数组的偶数元素,得分两种常见场景:一种是元素本身的值为偶数,另一种是元素所在的索引为偶数(Bash数组索引从0开始哦),我分别给你讲具体实现方法:

场景1:筛选并输出值为偶数的元素

假设你有一个包含数字的数组,想要把其中所有偶数挑出来输出,这里有两种实用方法:

方法1:遍历数组实时判断输出

直接遍历数组的每个元素,用取模运算判断是否为偶数,符合条件就用echo输出:

# 先定义一个示例数组
my_numbers=(13 24 5 36 7 42 91 88)

# 遍历数组筛选偶数
for num in "${my_numbers[@]}"; do
    # Bash算术判断:如果num除以2余数为0,就是偶数
    if (( num % 2 == 0 )); then
        echo "$num"
    fi
done

运行这段代码,会逐行输出数组里的24、36、42、88。

方法2:先收集偶数到新数组再输出

如果之后还要用到这些偶数元素,可以先把它们存入一个新数组,再统一输出:

my_numbers=(13 24 5 36 7 42 91 88)
even_numbers=()  # 初始化空数组存偶数

for num in "${my_numbers[@]}"; do
    (( num % 2 == 0 )) && even_numbers+=("$num")
done

# 一次性输出所有偶数(空格分隔)
echo "${even_numbers[@]}"
# 如果要逐行输出,用printf更灵活
# printf "%s\n" "${even_numbers[@]}"

场景2:访问并输出索引为偶数的元素

如果你说的“偶数元素”是指位于偶数索引位置的元素(比如索引0、2、4...对应的元素),可以这样实现:

# 示例数组,元素可以是任意类型
my_array=(apple banana cherry date elderberry fig grape honeydew)

# 遍历数组的所有索引
for index in "${!my_array[@]}"; do
    # 判断索引是否为偶数
    if (( index % 2 == 0 )); then
        echo "索引$index的元素:${my_array[$index]}"
    fi
done

运行后会输出:

索引0的元素:apple
索引2的元素:cherry
索引4的元素:elderberry
索引6的元素:grape

同样,你也可以把这些元素收集到新数组后再统一输出,方法和场景1类似。

小提示

  • "${array[@]}"会展开数组的所有元素,保证包含空格的元素也能被正确处理;
  • "${!array[@]}"用来获取数组的所有索引;
  • 如果想让所有偶数元素在一行输出,用echo "${even_elements[*]}"(用空格分隔),逐行输出就用printf "%s\n" "${even_elements[@]}"。

内容的提问来源于stack exchange,提问作者Jake Leroy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:35:39