【shell案例】由一个猜数字游戏引发的血案

脚本释义

本脚本是学员练习脚本的一个案例,脚本的名字叫 猜数字骗局, 脚本一开始,输入用户密码,就是一个简单的猜数字游戏,当你猜了三次的时候,提示是否还玩来刷选用户。

当用户玩到第六次的时候,突然中奖,可以免费送一个礼品,礼品需要自己选购,但只有鼠标有货, 当你选好鼠标后,,网站会以网站安全为理由对用户进行审查,要求用户输入必要的信息来兑奖。

同时要求用户帮网站做一套架构,LAMP的架构,如果顺利做出来LAMP的架构的,可以获得礼品,否则将再次进入黑名单。

本脚本看上去荒诞无奇,但是可以很好的锻炼学员的脚本意识, 让学员在一个小的脚本的基础上无限扩展。

比如在脚本开始在加入用户验证机制等等。

此脚本做完后就是一个猜数字游戏+购物车模块+一键部署网站+用户登录验证 四个脚本的合体。

学员脚本示例

注意: 此脚本没有加注释,脚本的主要内容和思路都已经在 脚本释义中给出,可以参考来看, 或者可以自己根据脚本释义的内容,尝试写一下。

学员刚刚学习脚本,请多鼓励,喷子勿扰。

#! /bin/bash
a=`expr $RANDOM % 100`
echo $a
s=0
read -ep "请输入帐号:" zhanghao
read -ep "请输入密码:" mima
liu=0
while true
do
for ((s=1;s<=3;s++))
do
        read -t 5 -ep  "请输入数字:" b
        ((liu+=1))
                if [ $b -gt $a ];then
                        echo "不好意思猜大了!"
                elif [ $b -lt $a ];then
                        echo "不好意思猜小了!"
                else
                        echo "恭喜你,猜对了!"
                fi
done
        if [ $liu -eq 6 ];then
                read -ep "恭喜你中将了,请输入预计花费金额!" huafei
        break
        fi
read -ep "是否继续Y/N:" jx

if [ $jx == "N" ];then
        exit
        echo "本次游戏到此结束!"
elif [ $jx == "Y" ];then
        echo "游戏继续"
fi

done
while true
do
read -ep "有一次免费购物机会,请从下列列表选择
                        1、鼠标
                        2、美女
                        3、电脑
                        4、游艇
                请输入您的选择:" zhongjiang
if [ $zhongjiang -eq 1 ];then
        read -ep "已添加到购物车,是否继续购买Y/N:" jixu
        if [ $jixu == "Y" ];then
                read -ep  "请选择购买的商品1.键盘,2.U盘" shangpin
                         case $shangpin in
                                        "1")
                                        echo "购买键盘成功消费200"
                                        exit;;
                                        "2")
                                        echo "购买U盘成功消费300"
                                        exit;;
                                        *)
                                        echo "输入1或者2";;
                        esac
        else
                read -ep  "还有300块钱的优惠券是否现在消费Y/N:" shifou
                        if [ $shifou == "Y" ];then
                                read -ep  "请选择购买的商品1.键盘,2.U盘: " shangpin
                         case $shangpin in
                                        "1")
                                        echo "购买键盘成功消费200"
                                        exit;;
                                        "2")
                                        echo "购买U盘成功消费300"
                                        exit;;
                                        *)
                                        echo "输入1或者2";;
                        esac
                        else
                                echo "加入黑名单,拒绝登陆!"
                        fi
        fi
        break
else
        echo "缺货中,请选择其他选择商品!"
fi
done
read -ep "是否要登陆?请输入Y/N:" denglu
if [ $denglu == "Y" ];then
        read -ep "你已被加入黑名单,需要输入银行卡和密码,请输入Y/N:" yinhang
        if [ $yinhang == "Y" ];then
                read -ep "请输入银行帐号: " yinhangzhanghao
                read -ep "请输入密码: " yinhangmima
                read -ep  "是否愿意来我们公司做管理员?请输入Y/N: " yuanyi
                        if [ $yuanyi == "Y" ];then
                                read -ep  "按照下列提示选择要安装的服务
                           1.自动安装apache
                           2.自动mysql     
                           3.自动安装php
                           4.自动上线wordpress
                   请选择:" anzhuang
                                case $anzhuang in
                                        "1")
                                        echo "正在安装apache"
                                        yum -y install httpd;;
                                        "2")
                                        echo "正在安装mysql"
                                        yum -y install mariadb mariadb-server;;
                                        "3")
                                        echo "正在安装php"
                                        yum -y install php php-mysql;;
                                        "4")
                                        echo "正在安装wordpress"
                                        sh wordpress.sh;;
                                        *)
                                        echo "输入1,2,3,4";;
                                esac

                        fi
        fi

else
        echo "拒绝登陆"
fi
~    

总结

任何复杂的脚本都是从一个简单的功能,慢慢增加复杂的功能,了解了这一点之后,在写脚本,就不至于无从下手。
当然该学员写完后,可以在把其中重复比较多的地方,改为函数,逐渐完善,效果会更好。

脚本写完后,需要慢慢优化,直到变成自己想要的样子。

你可能感兴趣的:(#,shell脚本天天练,猜数字游戏,购物车模块,用户登录模块,shell脚本)