用脚本模拟抽签

用脚本模拟抽签

1、写一个脚本执行后,输入名字,产生随机数01-99之间的数字。
2、如果相同的名字重复输入,抓到的数字还是第一次抓取的结果,
3、前面已经抓到的数字,下次不能在出现相同数字。
4、第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出
继续等待别的学生输入。

理性分析:一个随机数对应一个名字,一个名字可以对应多个数字,但数字不能重复出现。唉,,好像不能这么理解,换成一个随机数对应一个名字,一个名字可以只能对应一个数字,且数字不能重复出现

#!/bin/bash

while :
do
    read -p  "请输入名字:" name
    if [ -f /tmp/test.log ];then
    	name1=`cat /tmp/test.log | awk -F: '{print $1}' | grep "$name"`

    	if [ "$name1" != "$name" ];then  #名字不重复情况下
        	radomnum=`echo $RANDOM | awk -F "" '{print $2 $3}'`
        	while :
        	do
          		num=`cat  /work/test/1.log |  awk -F: '{print $2}'  | grep "$aa"`
          		if [ "$radomnum"  ==  "$num" ];then   #数字已经存在情况下
              		echo "该数字已存在!!!"
              		radomnum=`echo $RANDOM | awk -F "" '{print $2 $3}'`
          		else
             		 break
          		fi
        	done
        	echo "$name:$radomnum" | tee -a /tmp/test.log
     	else
     		oldname=`cat /tmp/test.log |  grep "$name" | awk -F: '{print $2}'` #名字重复
     		echo "重复名字: "  $oldname
     	fi
  	else
      	a=`echo $RANDOM | awk -F "" '{print $2 $3}'`
      	echo "$name:$a" | tee -a  /tmp/test.log
  	fi
done

测试

在这里插入图片描述

查看test.log

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值