模拟双色球中奖的脚本
前几天已经写过一个模拟双色球生成一注号码的脚本,这次调整了一下代码,把中奖的过程也写进去,实现双色球的抽奖功能。
- 画出代码的流程图
- 脚本如下
#!/bin/bash
function genNumbers() {
redballs=({1..33})
blueballs=({1..16})
while :;
do
[ ${#redballs[@]} -eq 27 ] && break
rindex=$[ $RANDOM%33 ]
[ -n "${redballs[${rindex}]}" ] && echo -ne "\033[31m${redballs[${rindex}]}\033[0m " && unset redballs[${rindex}]
done
bindex=$[ $RANDOM%16 ]
echo -e "\033[34m${blueballs[$bindex]}\033[0m"
}
customers=($(genNumbers))
backGround=($(genNumbers))
echo "这是你的号码:${customers[*]}"
if [[ ${customers[6]} == ${backGround[6]} ]];
then
i=0
flag=0
while [ $i -le 5 ]
do
j=0
while [ $j -le 5 ]
do
c=${customers[${i}]}
b=${backGround[${j}]}
[[ "$c" == "$b" ]] && let flag++
let j++
done
let i++
done
[ $flag -le 2 ] && echo "恭喜你!你中了六等奖,奖金 5元 !"
[ $flag -eq 3 ] && echo "恭喜你!你中了五等奖,奖金 10元 !"
[ $flag -eq 4 ] && echo "恭喜你!你中了四等奖,奖金 200元 !"
[ $flag -eq 5 ] && echo "恭喜你!你中了三等奖,奖金 3000元 !"
[ $flag -eq 6 ] && echo "恭喜你!!!!!!!!!!你中了一等奖,奖金 500万元 !"
else
i=0
flag=0
while [ $i -le 5 ]
do
j=0
while [ $j -le 5 ]
do
c=${customers[${i}]}
b=${backGround[${j}]}
[[ "$c" == "$b" ]] && let flag++
let j++
done
let i++
done
[ $flag -le 3 ] && echo "很遗憾!你没有中奖!!"
[ $flag -eq 4 ] && echo "恭喜你!你中了五等奖,奖金 10元 !"
[ $flag -eq 5 ] && echo "恭喜你!你中了四等奖,奖金 200元 !"
[ $flag -eq 6 ] && echo "恭喜你!你中了二等奖,奖金 300万元 !"
fi
echo "开奖结果:${backGround[*]}"
运行上面的脚本,就可以”买“双色球啦!赶快运行看看你能不能中500万!
- 看看何时能中500万
#!/bin/bash
i=1
while :;
do
balls=`ballsPlus` #前提是要将双色球的脚本提升为环境变量才能直接执行
result=`echo $balls | sed -nr '/500/p'`
echo "$i"
let i++
[ -n "$result" ] && echo "500万到手!" && break
done
运行上面的脚本,看看你要多少次才能中500万!
- 将脚本作为命令使用的方法:
#查看你的环境变量
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/var/lib/snapd/snap/bin:/root/bin
#将在/usr/bin下创建一个双色球脚本的符号连接(我的脚本名字是 ballsPlus.sh)
ln -s /root/ballsPlus.sh /usr/bin/ballsPlus
#给源文件赋予执行权限
chmod 777 /root/ballsPlus.sh
提升变量之后就可以执行刚刚的脚本啦!赶紧试试要多少次才能中500万吧!
中双色球的概率是1700多万分之一…我模拟了130多万都没有成功,你们加油吧!