2017-03-09 54 views
0

我想要SUM序列。Bash总和数字序列

问计的第一数目和第二更大的数,其结果将是这样的:

第一数:2

第二更大的数:6

2 + 3 + 4 + 5 + 6 = 20

我整个晚上栈,我必须使用forseq

#!/bin/sh 

echo -n "Enter number 1: " 
read A 
echo -n "Enter a number greater o equal than $A: " 
read B 
J=0 

if [ $B -ge $A ] 
    then  
     for i in `seq $A $B` 
     do 
      RES=$i=$i+$J 
      #I don't know what to do 
     done 
     exit 0 
else 
echo "wrong" 
exit 1 
fi 

exit 0 
+0

有什么问题吗? – alfasin

+0

为什么你需要使用'seq'? (for((i = $ A; i <= $ B; i ++))'更高效,更习惯。 – chepner

+0

的问题是_如何得到那个?_ @alfasin – Mircos

回答

1

这打印出所需的部分(我想你已经知道如何添加if/else)。

read -p "Enter number 1: " a 
read -p "Enter a number greater or equal than $a: " b 

high=$((b-1)) 
sum=0 
str="" 
for i in $(seq $a ${high}); do 
str="${str}${i}+" 
sum=$((j+=i)) 
done 

sum=$(($sum+$b)) 
str="${str}${b}=${sum}" 
echo $str 
+0

这真棒,伙计,真的很感谢你@arash 世界需要更多的人喜欢你(所有这里) 欣赏。 – Mircos