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

Bash脚本未进入if循环,无法打印14-49间奇数求助

问题分析与解决方案

你的for循环代码存在重复递增计数器的问题:

  • for循环定义for (( count=14; count<=49; count+=5 ))已经指定了每次循环结束后count自动加5
  • 但你在循环体里又执行了let count=$(($count+5)),导致每次循环count实际增加了10

这使得循环中count的取值依次为14、24、34、44——全是偶数,永远满足不了$(($count%2)) -ne 0的奇数判断条件,因此无法进入if分支。


修正后的代码

移除循环体内重复的递增语句即可:

#!/bin/bash

for (( count=14; count<=49; count+=5 ))
do
        echo "inside for loop"

        if [ $(($count%2)) -ne 0 ]; then
                echo $count
                echo "inside if"
        fi
done

如果想更高效地直接遍历目标奇数,也可以调整初始值和步长:

#!/bin/bash

# 从14-49间的第一个奇数开始,每次加10保证只取间隔5的奇数
for (( count=15; count<=49; count+=10 ))
do
        echo $count
        echo "inside if"
done

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 11:52:08