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
相关产品推荐
相关产品推荐

