1.用shell求出从1至100的累加和
 
第一种:设名为 1.sh

sum=0
a=1
b=100
while [ $a -lt $b ]
do
  c=`expr $a + $b`
  sum=`expr $sum + $c`
  a=`expr $a + 1`
  b=`expr $b - 1`
done
echo $sum



第二种:设名为 2.sh

a=0
number=0
while [ $number -le 100 ]
do
a=`expr $a + $number`
number=`expr $number + 1`
done
echo $a

第三种:设名为3.sh

a=1
sum=0
while [ $a -le 100 ]
do
((sum=sum+a))
((a=a+1))
         done
        echo $sum


第四种:设名为 4.sh

a=1
sum=0
while :
do
test $a -gt 100 && { echo $sum  exit  }
((sum=sum+a))
((a=a+1))
done


再来个awk版的 5.sh,不过效率稍差点,但是最精简

echo |awk '{for (i=1;i<=100;i=i+1) a=a+i} { print a}'
2.输出1到1000中能被7正常的数到/home/johnny中,并在屏幕中输出这些数之和!
 
#!/bin/sh
 
sum=0
for a in `seq 1 1000`
do
     if [ `expr $a % 7` -ne 0 ]
     then
          continue
     fi
     echo $a>>/home/johnny/print
     sum=`expr $sum + $a`
done
echo "sum = $sum"
 
 
3.利用循环计算10的阶乘
#!/bin/bash
#factorial
 
factorial=1
for a in `seq 1 10`
do
     factorial=`expr $factorial \* $a`
done
echo "10!=$factorial"
 
 
4.一个函数,利用shift计算所有参数乘积,假设参数均为整数
 
#!/bin/bash
#result
result=1
while [ $# -gt 0 ]
do
        result=`expr $result \* $1`
shift
done
echo $result