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

