因此需要挑选学生,因此需要一个抓阄的程序:
要求:
1、执行脚本后,想去的同学输入英文名字全拼,产生随机数01-99之间的数字,
数字越大就去参加项目实践,前面已经抓到的数字,下次不能在出现相同数字。
2、第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出
继续等待别的学生输入。

 #!/bin/bash
while true;do
  echo -e "\e[1;31m退出请输入:exit  \e[0m"
  read -e -p "ples input you name(拼音):" name name1
  ##判断是否退出程序
  [ "$name" == "exit" ]&& exit 0

##判断输入的用户名是否符合以下规则
  echo $name|grep ^[A-Za-z]*$  &>/dev/null
  #判断是否字母
  [ $? -ne 0 ] && {
     clear
     echo -e "\e[1;33m 请输入拼音名!! \e[0m \n"
     continue
  }
  #名字不能为空
  [ -z $name ] && {
      clear
      echo -e "\e[1;33m 名字不能为空!! \e[0m \n"
      continue
  }
  #不能有第二个名字参数
  [ ! -z $name1 ] && {
      clear
      echo -e "\e[1;33m 请输入正确的名字!! \e[0m \n"
      continue
  } 
  [ ! -f b.txt ] && touch b.txt

##循环列表检查用户名是否存在,存在则重新输入。
  filename=`awk '{print $1}' b.txt`
  RAT1=Fasle
  for i in $filename;do
      if [ "$i" == "$name" ];then
         clear
         echo -e "\e[1;33m 用户名($name)已经存在,不能输入第二次!! \e[0m \n"
         RAT1=True
         break
      fi
  done
  [ "$RAT1" == "True" ]&&{
         continue
  }

##判断文件中是否已经存在的数字就不能在次添加,直到是文件中没有的数字。
  while true;do
      #判断是否已经达到99个数字了
      [ `cat b.txt|wc -l` -eq 99 ] && {
          echo -e "\e[1;33m 数字已经输完!! \e[0m \n"
          break
      }
      num=`echo $(($RANDOM%100))`
      #如果是0或100就重新取值
      [ $num -eq 0 -o $num -eq 100 ] && continue
      filenum=`awk '{print $2}' b.txt`
      RAT=True
      for i in $filenum;do
          if [ $i -eq $num ];then
               RAT=False
               break
          fi
      done
      if [ $RAT == "True" ];then
           clear
           echo -e "\e[1;33m    $name: $num \e[0m \n"
           echo "$name $num" >> b.txt
           break
      fi
   done
done

shell小程序的更多相关文章

  1. Shell脚本 小程序演示

    一般的shell编程 场景贯穿了几个熟知的步骤: ●显示消息●获取用户输入●存储值到文件●处理存储的数据 这里写一个小程序 包含以上几部 #!/bin/bash while true do #echo ...

  2. 自动生成.py文件头部的C语言小程序

    每次都 vi xxx.py 然后再打 #!/usr/bin/env python 等等的程序头信息感觉有点麻烦,于是便想着写一个小程序自动生成这些头信息了,顺便在 ~/.bashrc 里写入 alia ...

  3. python学习之最简单的获取本机ip信息的小程序

    文章是从我的个人博客粘贴过来的,大家可以直接访问我的个人博客哦 http://www.iwangzheng.com 获取本机ip信息的命令ifconfig总是在用,这次拿到pyhton代码里,感觉py ...

  4. 【腾讯优测干货分享】微信小程序之自动化亲密接触

    本文来自于腾讯优测公众号(wxutest),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/HcPakz5CV1SHnu-U8n85pw 导语 山雨欲来风满楼,最 ...

  5. JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(二)

    一  前言 本文是上一篇博客JWebFileTrans:一款可以从网络上下载文件的小程序(一)的续集.此篇博客主要在上一篇的基础上加入了断点续传的功能,用户在下载中途停止下载后,下次可以读取断点文件, ...

  6. JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(三),多线程断点下载

    一 前言 本篇博客是<JWebFileTrans(JDownload):一款可以从网络上下载文件的小程序>系列博客的第三篇,本篇博客的内容主要是在前两篇的基础上增加多线程的功能.简言之,本 ...

  7. 微信小程序语音识别服务搭建全过程解析(项目开源在github)

    silk v3录音转olami语音识别和语义处理的api服务(ubuntu16.04服务器上实现) ## 重要的写在前面 重要事项一: 目前本文中提到的API已支持微信小程序录音文件格式:silk v ...

  8. 微信小程序语音识别服务搭建全过程解析(https api开放,支持新接口mp3录音、老接口silk录音)

    silk v3(或新录音接口mp3)录音转olami语音识别和语义处理的api服务(ubuntu16.04服务器上实现) 重要的写在前面 重要事项一: 所有相关更新,我优先更新到我个人博客中,其它地方 ...

  9. 微信小程序语音与讯飞语音识别接口(Java)

    项目需求,需要使用讯飞的语音识别接口,将微信小程序上传的录音文件识别成文字返回 而微信小程序上传的文件格式是silk的,而讯飞接口能识别wav 格式的文件,所以需要将小程序上传的silk文件转成wav ...

随机推荐

  1. Handlebar

    1.Handlebar中文网: http://www.ghostchina.com/introducing-the-handlebars-js-templating-engine/ 2.http:// ...

  2. HDU2177:取(2堆)石子游戏(威佐夫博弈)

    Problem Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同 ...

  3. .NET解析HTML库集合

    CsQuery AngleSharp Jumony HtmlAgilityPack Fizzler ScrapySharp NSoup

  4. IOS开发之 ---- 苹果系统代码汉字转拼音

    NSString *hanziText = @"我是中国人";   if ([hanziText length]) {       NSMutableString *ms = [[ ...

  5. iOS开发-相关文档

    关于调试,查看Xcode Overview文档相关部分:http://developer.apple.com/library/ios/documentation/ToolsLanguages/Conc ...

  6. Innodb 锁 (简单笔记)

    看过很多innodb锁的文章,已经明白的就不写了,简单做个笔记   Innodb 锁的兼容性: 1.意向锁和意向锁之间都是兼容的 2.X(排他锁)与任何锁都是不兼容的 3.排他意向锁 IX 于S锁是不 ...

  7. Css基础-类选择器

    类选择器以一个.显示 <p class="pclass">这是第一个class</p> .pclass { color:red; } <div cla ...

  8. Update操作浅析,一定是先Delete再Insert吗?

    Update操作一定是先Delete再Insert吗? Update在数据库中的执行是怎么样的?“Update操作是先把数据删除,然后再插入数据”.在网上看了很多也都是这么认为的.但在查阅到一些不同看 ...

  9. android学习日记15--WebView(网络视图)

    一.WebView 1.简述 WebView(网络视图)内置WebKit引擎,能加载显示网页,还支持JS,并且能够在Android平台使用AJAXWebView可以在布局中声明,也可以在Activit ...

  10. Android高手进阶教程(七)之----Android 中Preferences的使用!

    http://blog.csdn.net/Android_Tutor/article/details/5531849 大家好,我们这一节讲的是Android Preferences 的学习,Prefe ...