[root@moli tmp]# cat wx.txt
小可爱
王可爱
小夹子
小李子
亲爱的
思随机
幻er
天量的
[root@moli tmp]# cat lottery.sh
#! /bin/bash
# 定义一个函数
rand(){
# local定义局部变量
# 使用 ..代替空格
local seeds=`while read line;do echo ${line// /..}; done < wx.txt`
local count=0
while [[ $count != 1 ]];do
# 从seeds中筛选出一部分人
# RANDOM%2 生成0/1随机数 0的时候 后面的短路
seeds=`for seed in $seeds;do (($RANDOM%2)) && echo $seed;done`
count=`echo "$seeds" | wc -l`
done
# 防止空白操作
if [[ $seeds == "" ]];then
rand
else
echo $seeds
fi
}
# 筛选出多个人
res(){
for ((i=0;i<$1;i++));do
tmp=`rand`
while [[ `is_repeat $tmp` == 0 ]];do
tmp=`rand`
done
arrs[$i]=$tmp
done
echo ${arrs[@]} # @也可以时*
}
# 把输进来的数据 与数组内的数据比较
is_repeat(){
# 如何遍历数组
for arr in ${arrs[@]};do
# $1 是执行函数时的传参
if [[ $arr == $1 ]];then
echo 0;
return 0;
fi
done
echo 1;
return 1;
}
# 执行脚本时的传参
res $1
bash小练习>抽奖
最新推荐文章于 2022-09-23 17:30:13 发布