关于linux shell 求1到100奇数之和的问题

脚本如下
#!/bin/bash
sum=0
for i in {1..100..2}
do
let "sum+=i"
done
echo "sum=$sum"

为何执行这个脚本之后,会有如下提示呢?
let: {1..100..2}: syntax error: operand expected (error token is "{1..100..2}")

 

for i in {1..100..2}

in 后面加空格     shell有时候格式比较严格

 追问

有空格的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-06
for((i=1;i<=100;i+=2))本回答被提问者采纳
第2个回答  2015-01-22
in {1..100..2}
in 和{ 之间有空格的
第3个回答  2020-07-03
sum=0;for((i=1;i<=100;i+=2));do let sum=$sum+$i;done;echo $sum
或者
sum=0;for i in {1..100..2};do let sum+=i;done;echo $sum
或者
sum=0;for i in {1..100..2};do sum=$[$sum+$i];done;echo $sum
或者
sum=0;for((i=1;i<=100;I++));do test $[$i%2] -ne 0 && let sum=$sum+$i; done;echo $sum
或者
sum=0;for i in {1..100..2};do sum=$(($sum+$i));done;echo $sum
总结了这几种写法,楼主的bash是不是指向/bin/dash了,我复制你的代码都能得出2500
第4个回答  2012-10-07
语法错误,仔细检查一下语句吧。
或许你的bash版本过低,不支持这种写法也说不准。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网