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} '
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
#result
result=1
while [ $# -gt 0 ]
do
result=`expr $result \* $1`
shift
done
echo $result
转载于:https://blog.51cto.com/johnny86/151534