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

Linux系统下计算100以内偶数和的shell脚本while循环条件如何设置

Shell脚本计算1-100偶数总和问题修正

你的代码存在两处核心问题:

  • 逻辑冗余:你已经通过外层for循环遍历了所有100以内的偶数,完全不需要嵌套while循环做累加,强行加的话要么判断条件永远为真导致死循环,要么完全没有实际作用
  • 语法错误:
    • [[$n 0]] 写法不符合bash判断语法,[[ 后和 ]] 前必须留空格,同时缺少对应的判断运算符
    • sum= expr sum + $n`` 中等号后不能有空格,expr 里取sum变量值需要加$符

如果你坚持要使用while循环实现,可以直接把遍历逻辑换成while,不需要嵌套for循环,正确代码如下:

#!/bin/bash
sum=0
n=2
# while循环判断条件:n小于等于100时就继续执行
while [ $n -le 100 ]
do
    echo $n
    sum=$(expr $sum + $n)
    # 每次循环n自增2,取到下一个偶数
    n=$((n+2))
done
echo "sum is $sum "

如果你还是想保留原来的for循环打印偶数的逻辑,直接去掉多余的while循环即可,修正后的代码如下:

#!/bin/bash
sum=0
for((n=2;n<=100;n=n+2))
do
    echo $n
    sum=$(($sum + $n))
done
echo "sum is $sum "

补充说明:实际场景中更推荐用$((算术运算))替代expr,不需要额外调用子进程,执行效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:24:09