脚本如下
#!/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}")
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-10-06
for((i=1;i<=100;i+=2))本回答被提问者采纳
第2个回答 2015-01-22
in {1..100..2}
in 和{ 之间有空格的
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
或者
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版本过低,不支持这种写法也说不准。
或许你的bash版本过低,不支持这种写法也说不准。