3 Star 0 Fork 0

Alnk / shell

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
luck_end1.sh 2.13 KB
一键复制 编辑 原始数据 按行查看 历史
Alnk 提交于 2020-09-16 15:08 . review 20200916
#!/usr/bin/env bash
#########################################
# Auth: Alnk
# Date: 20180205
# QQ: 1029612787
# Version: v0.2.0
# Info: 抽奖小程序
#########################################
#定义抽奖人员名单,如果没有导入名单,此处为默认名单
array=(王浩 谢云生 黄科杨 何星宇 张宸兵 邓培林 刘桃 杨沛东 楚齐文 咸鱼 杨东 黄庭辉 郑少文 师靖 肖洪森)
#导入抽奖人员名单
if [[ $# -eq 1 ]];then
array=()
while read line;do
array=(${array[@]} ${line})
done <$1
fi
#多少人参与抽奖,此处的值就为多少减去1
sum=14
#定义保存中奖名单文件
log_file=log.txt
#debug
#如果log.txt日志文件存在则删除
if [[ -e "log.txt" ]];then
rm -f ${log_file}
fi
#中奖名单
zjmd=()
#抽奖的主函数
chou(){
echo -e "现在开始抽取${number}...\n"
i=0
while [[ $i -lt ${count} ]];do
#此处是随机抽取中奖人员语句
a=`seq 0 ${sum}|shuf|head -1`
win=${array[a]}
#判断该人员是否已经中奖,不可重复参与抽奖
#此处是判断一个元素是否存在于数组中
#这个是判断一个元素不存在于一个数组中
if [[ ${zjmd[@]/$win/} == ${zjmd[@]} ]];then
echo "${number}中奖名单:${win}">>${log_file}
echo "${number}中奖名单:${win}"
zjmd=(${zjmd[@]} ${win})
let i++
fi
done
echo ''
break
}
#查看中奖名单的函数
mingdan(){
echo ''
if [[ -e ${log_file} ]];then
echo "中奖名单如下:"
cat ${log_file}
else
echo "还没抽过奖哦"
fi
echo ''
break
}
#select语句,使用以下的提示符
PS3="请输入抽奖编号:"
#主循环
while true;do
select number in 一等奖 二等奖 三等奖 中奖名单 退出抽奖系统;do
case ${number} in
一等奖)
count=1 #中奖名额控制
chou
;;
二等奖)
count=2 #中奖名额控制
chou
;;
三等奖)
count=3 #中奖名额控制
chou
;;
中奖名单)
mingdan
;;
退出抽奖系统)
echo -e "退出抽奖系统!\n"
exit
;;
*)
echo -e "输入的编号有误,请重新输入编号!\n"
break
esac
done
done
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Shell
1
https://gitee.com/lichengguo/shell.git
git@gitee.com:lichengguo/shell.git
lichengguo
shell
shell
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891