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

Bash奇数求和程序运行失败求助:代码问题排查

Bash奇数求和程序错误修正

你的代码存在几处bash语法问题,导致运行失败,具体问题及修正方案如下:

  • 循环条件变量引用错误:while [ i -le $n ] 里的i未加$引用变量值,bash无法识别为变量,需改为 while [ $i -le $n ];更推荐用bash算术表达式写法 while (( i <= n )),可读性更强。

  • 算术运算语法错误:直接写odd=(2*i-1)和sum=(sum+odd)是数组赋值语法,并非算术计算。正确的算术赋值需用$(( ))或(( )):

    • 计算奇数:odd=$((2*i-1))
    • 累加求和:sum=$((sum+odd))
  • 输出格式优化:echo -n $odd 输出的数字会连在一起,建议改为 echo -n "$odd ",让输出更清晰。

修正后的完整代码:

echo "How many numbers would you like to add?"
read n
i=1
sum=0
echo "Odd numbers are:"
while (( i <= n ))
do
    odd=$((2*i-1))
    echo -n "$odd "
    sum=$((sum+odd))
    ((i++))
done
echo ""
echo "Sum is: $sum"

若需兼容老旧bash版本,循环条件也可写成 while [ $i -le $n ],但(( ))作为bash扩展语法,写法更简洁直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 07:07:05