shell脚本的案例解读
一、计算从1到100所有整数的和
方法一:for
#!/bin/bash
#
sum=0
for ((i=1;i<=100;i++))
do
sum=$[$i+$sum]
done
echo "0-100的和为:" $sum
二方法:while
#!/bin/bash
#
i=0
sum=0
while [ $i -le 100 ]
do
sum=$[$sum+$i]
let i++
done
echo "1-100的和为:$sum"
三方法:while
#!/bin/bash
#
i=0
sum=0
while [ $i -le 100 ]
do
sum=$[$sum+$i]
let i++
done
echo "1-100的和为:$sum"
二、提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
方法一:for
#!/bin/bash
#
sum=0
read -p "请输入一个小于100的整数:" b
if [ $b -gt 0 -a $b -le 100 ];then
for ((i=1;i<=100;i++))
do
if [ $i -le $b ];then
sum=$[$sum+$i]
else
break
fi
done
echo "1到$b之间所有整数的和为:$sum"
fi
方法二:while
#!/bin/bash
#
i=0
sum=0
read -p "请输入一个小于100的整数:" b
if [ $b -gt 0 -a $b -le 100 ];then
while [ $i -le $b ]
do
sum=$[$sum+$i]
let i++
done
echo "1到$b之间所有整数的和为:$sum"
else
echo "请输入0-100区间的整数"
fi
三、求从1到100所有整数的偶数和、奇数和
方法一:for
#!/bin/bash
#
sum1=0
sum2=0
for ((i=0;i<=100;i++))
do
a=`echo $[$i%2]`
if [ $a -eq 1 ] ;then
sum1=$[$sum1+$i]
else
sum2=$[$sum2+$i]
fi
done
echo "0-100之间的偶数和为:$sum2"
echo "0-100之间的奇数和为:$sum1"
方法二:while
#!/bin/bash
#
sum1=0
sum2=0
i=0
while [ $i -le 100 ]
do
a=`echo $[$i%2]`
if [ $a -eq 0 ]
then
sum2=$[$sum2+$i]
let i++
else
sum1=$[$sum1+$i]
let i++
fi
done
echo "0-100之间的偶数和为:$sum2"
echo "0-100之间的奇数和为:$sum1"
四、淘宝选购商品脚本
每家商店有五种商品选购(衣服500元,裤子400元,鞋子350元,帽子150元,袜子50元),每次选购完或不买都会提示用户是否继续逛下一家商店,如果不再继续逛的话进行购物车结算总额。
#!/bin/bash
#
sum=0
for ((i=1; ;i++))
do
sum=$sum
echo "可购买的商品为衣服(500元),裤子(400元),鞋子(350元),帽子(150元),袜子(50元)"
echo "-------------------------------请输入相应的编号购买产品-------------------------------"
echo "-----------1:衣服-------2:裤子-------3:鞋子-------4:帽子-------5:袜子------------"
read -p "相应编号:" goods
case $goods in
1)
echo "---------------------------------------------------"
read -p "请确定是否购买,按“1”确定购买,不想购买请按任意数字" a
if [ $a -eq 1 ];then
sum=$[$sum+500]
echo "-------------------------------------------------"
read -p "感谢购买此商品,按任意数字键进入下一家店;按0退出" aa
if [ "$aa" -eq 0 ];then
echo "你本次购买了$i 件商品,一共$sum 元。"
break
fi
fi
;;
2)
echo "--------------------------------------------------------"
read -p "请确定是否购买,按“1”确定购买,不想购买请按任意数字" a
if [ $a -eq 1 ];then
sum=$[$sum+400]
echo "------------------------------------------------------"
read -p "感谢购买此商品,按任意数字键进入下一家店;按0退出" aa
if [ "$aa" -eq 0 ];then
echo "你本次购买了$i 件商品,一共$sum 元。"
break
fi
fi
;;
3)
echo "--------------------------------------------------------"
read -p "请确定是否购买,按“1”确定购买,不想购买请按任意数字" a
if [ $a -eq 1 ];then
sum=$[$sum+350]
echo "------------------------------------------------------"
read -p "感谢购买此商品,按任意数字键进入下一家店;按0退出" aa
if [ "$aa" -eq 0 ];then
echo "你本次购买了$i 件商品,一共$sum 元。"
break
fi
fi
;;
4)
echo "--------------------------------------------------------"
read -p "请确定是否购买,按“1”确定购买,不想购买请按任意数字" a
if [ $a -eq 1 ];then
sum=$[$sum+150]
echo "------------------------------------------------------"
read -p "感谢购买此商品,按任意数字键进入下一家店;按0退出" aa
if [ "$aa" -eq 0 ];then
echo "你本次购买了$i 件商品,一共$sum 元。"
break
fi
fi
;;
5)
echo "--------------------------------------------------------"
read -p "请确定是否购买,按“1”确定购买,不想购买请按任意数字" a
if [ $a -eq 1 ];then
sum=$[$sum+50]
echo "------------------------------------------------------"
read -p "感谢购买此商品,按任意数字键进入下一家店;按0退出" aa
if [ "$aa" -eq 0 ];then
echo "你本次购买了$i 件商品,一共$sum 元。"
break
fi
fi
;;
*)
echo "请输入正确的商品编号"
esac
done
五菱形的输出
#!/bin/bash
#上面的三角形
read -p "请输入一个奇数来建立菱形:" z
y=$[z/2]
x=$[y+1]
for ((a=1;a<=x;a++)) #行数
do
for ((b=y; b>=a;b--)) #列数
do
echo -n " "
done
i=$[($a*2)-1]
for ((c=1;c<=i;c++)) #列数
do
echo -n "*"
done
echo " "
done
#下面的三角形
for ((a=1; a<=y; a++))
do
for ((b=1; b<=a; b++))
do
echo -n " "
done
i=$[z-2*$a]
for ((c=1; c<=i; c++))
do
echo -n "*"
done
echo " "
done