shell双重循环之小实验
写一个逛网上商城选购商品脚本,每家商店有五种商品选购(衣服500元,裤子400元,鞋子350元,帽子150元,袜子50元),每次选购完或不买都会提示用户是否继续逛下一家商店,如果不再继续逛的话进行购物车结算总
#!/bin/bash
PRICE=$( expr $RANDOM % 1000)
TIMES=0
echo "商品实际价格为0-999之间,猜猜看是多少?"
while true
do
read -p "请输入你猜测的价格数目:" INT
let TIMES++
if [ $INT -eq $PRICE ]
then
echo "恭喜你答对了,实际价格为 $PRICE"
echo "你总共猜测了 $TIMES 次"
exit 0
elif [ $INT -gt $PRICE ]
then
echo "太高了!"
else
echo " 太低了!"
fi
done

将一个点分十进制格式的IP地址转换成点分二进制格式。
#!/bin/bash
read -p "请输入ip" a
e=. #定义变量值为.作为分隔符
a1=`echo $a | awk -F. '{print $1}'`
a2=`echo $a | awk -F. '{print $2}'`
a3=`echo $a | awk -F. '{print $3}'`
a4=`echo $a | awk -F. '{print $4}'`
#分段定义变量
for b in $a1 $a2 $a3 $a4 #以变量作为变量值也为外循环的循环次数
do
for i in 128 64 32 16 8 4 2 1 #表示循环8次每次循环变量i的值
do
if [ $b -ge $i ] #判断大于等于变量i则减去并输出变量c=1其他为0
then
b=$[$b-$i]
c=1
else
c=0
fi
d=$d$c #内循环迭代
done
if [ ${#d} -eq 35 ]#判断当变量d的参数个数等于35是退出此次循环
then
break
fi
d=$d$e #外循环迭代
done
echo "本次十进制IP转二进制结果为:$d"
![]()