现有100个员工,编号由1~100.写一个脚本,实现随机抽奖,抽选5名员工获奖。并且要求不可以重复中奖
- #!/bin/bash
- for ((i=0;i<5;i++))
- {
- num=$(($RANDOM%100+1))
- for ((j=0;j<=i;j++))
- {
- if [ $num -ne $((myarray[$j])) ]
- then
- myarray[$i]=$num
- fi
- }
- }
- echo ${myarray[*]}
[root@hadoop2 4]# ./s.sh
61 14 40 31 26
在这个脚本中,最重要的就是这两个循环的嵌套,然后是两个数字的选用。当循环的次数足够大,大到跟数据总数一样多,可以实现将所有用户乱序排列。但是效率很低。如果基数过大会造成不必要的数据问题。