现有100个员工,编号由1~100.写一个脚本,实现随机抽奖,抽选5名员工获奖。并且要求不可以重复中奖

  1. #!/bin/bash  
  2. for ((i=0;i<5;i++))  
  3. {  
  4.      num=$(($RANDOM%100+1))  
  5.      for ((j=0;j<=i;j++))  
  6.      {  
  7.           if [ $num -ne $((myarray[$j])) ]  
  8.           then 
  9.           myarray[$i]=$num  
  10.           fi  
  11.      }  
  12. }  
  13. echo ${myarray[*]}

[root@hadoop2 4]# ./s.sh 
61 14 40 31 26

在这个脚本中,最重要的就是这两个循环的嵌套,然后是两个数字的选用。当循环的次数足够大,大到跟数据总数一样多,可以实现将所有用户乱序排列。但是效率很低。如果基数过大会造成不必要的数据问题。