首页 > 代码库 > 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 脚本之双色球