首页 > 代码库 > shell 脚本之双色球
shell 脚本之双色球
首先要清楚双色球的玩法:6个红球(1~33)和1个蓝球(1~16)中选取一个所谓的6+1
要生成1~33之间6个随机数,且不能相等,这是关键,如果使用传统的判断方法(第一个与第二个...第二个与第三比...),势必代码会很长很长,我的思路是:使用${RANDOM} % 33 +1 的方式,把这6个红球放在一个数组RED里面,使用:for J in "${RED[@]}";do echo $J;done) |sort |uniq -d 的方式去判断有没有重复值
执行效果: 10注为例:
文本
#!/bin/bash
#Author:wangergui Email:291131893@qq.com Date:2016-09-17
#Release 1.0
#Function:shuang se qiu
declare -a RED
read -t 10 -p "Please input a number: " NUM
STR=`echo ${NUM} |sed ‘sN^.*[[:digit:]]$NNg‘`
[[ -z "${STR}" ]] || exit 2
for I in `seq ${NUM}`;do
while true;do
RED=($(($RANDOM % 33 +1)) $(($RANDOM % 33 +1)) $(($RANDOM % 33 +1)) $(($RANDOM % 33 +1)) $(($RANDOM % 33 +1)) $(($RANDOM % 33 +1)))
BLUE=$(($RANDOM % 16 +1))
STRING=`(for J in "${RED[@]}";do echo $J;done) |sort |uniq -d`
if [[ -z "${STRING}" ]];then
echo -e "\E[40;31;1m ${RED[@]}\E[0m || \E[40;34;1m ${BLUE}\E[0m" && break
fi
done
done
本文出自 “linux相关技术” 博客,谢绝转载!
shell 脚本之双色球