shell小程序
因此需要挑选学生,因此需要一个抓阄的程序:
要求:
1、执行脚本后,想去的同学输入英文名字全拼,产生随机数01-99之间的数字,
数字越大就去参加项目实践,前面已经抓到的数字,下次不能在出现相同数字。
2、第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出
继续等待别的学生输入。
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小程序的更多相关文章
- Shell脚本 小程序演示
一般的shell编程 场景贯穿了几个熟知的步骤: ●显示消息●获取用户输入●存储值到文件●处理存储的数据 这里写一个小程序 包含以上几部 #!/bin/bash while true do #echo ...
- 自动生成.py文件头部的C语言小程序
每次都 vi xxx.py 然后再打 #!/usr/bin/env python 等等的程序头信息感觉有点麻烦,于是便想着写一个小程序自动生成这些头信息了,顺便在 ~/.bashrc 里写入 alia ...
- python学习之最简单的获取本机ip信息的小程序
文章是从我的个人博客粘贴过来的,大家可以直接访问我的个人博客哦 http://www.iwangzheng.com 获取本机ip信息的命令ifconfig总是在用,这次拿到pyhton代码里,感觉py ...
- 【腾讯优测干货分享】微信小程序之自动化亲密接触
本文来自于腾讯优测公众号(wxutest),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/HcPakz5CV1SHnu-U8n85pw 导语 山雨欲来风满楼,最 ...
- JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(二)
一 前言 本文是上一篇博客JWebFileTrans:一款可以从网络上下载文件的小程序(一)的续集.此篇博客主要在上一篇的基础上加入了断点续传的功能,用户在下载中途停止下载后,下次可以读取断点文件, ...
- JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(三),多线程断点下载
一 前言 本篇博客是<JWebFileTrans(JDownload):一款可以从网络上下载文件的小程序>系列博客的第三篇,本篇博客的内容主要是在前两篇的基础上增加多线程的功能.简言之,本 ...
- 微信小程序语音识别服务搭建全过程解析(项目开源在github)
silk v3录音转olami语音识别和语义处理的api服务(ubuntu16.04服务器上实现) ## 重要的写在前面 重要事项一: 目前本文中提到的API已支持微信小程序录音文件格式:silk v ...
- 微信小程序语音识别服务搭建全过程解析(https api开放,支持新接口mp3录音、老接口silk录音)
silk v3(或新录音接口mp3)录音转olami语音识别和语义处理的api服务(ubuntu16.04服务器上实现) 重要的写在前面 重要事项一: 所有相关更新,我优先更新到我个人博客中,其它地方 ...
- 微信小程序语音与讯飞语音识别接口(Java)
项目需求,需要使用讯飞的语音识别接口,将微信小程序上传的录音文件识别成文字返回 而微信小程序上传的文件格式是silk的,而讯飞接口能识别wav 格式的文件,所以需要将小程序上传的silk文件转成wav ...
随机推荐
- 问题-Delphi控件选择卡自动选择与滚动方法
问题现象: 在D7的控件工具条中每次要手动点向左向右很累,有没有方法可以自动移动. 问题解决: REGEDIT4 [HKEY_CURRENT_USER\Software\Borland\Delph ...
- vs之Nuget
1.http://msdn.microsoft.com/zh-cn/magazine/hh547106.aspx 2.在Nuget控制台中安装特定版本: Install-Package <程序包 ...
- Asp.Net事务和异常处理:
Asp.Net事务和异常处理: 一.什么是事务处理? 事务处理是一组组和成逻辑工作单元的数据库操作,虽然系统中可能会出错,但事务将控制和维护每个数据库的一致性和完整性. 如果在事务过程中没有遇到错误, ...
- linux centos6 NAT 端口转发
有很多时候我们为了安全,需要将例如数据库服务器放到内网中.但是有些时候又系统给外网开一个端口,这时就可以利用外网的服务器进行一个端口转发.今天我们以centos6 为例进行端口转发配置. 首先vi / ...
- orderby group by
说到SQL语句,大家最開始想到的就是他的查询语句: select* from tableName: 这是最简单的一种查询方式,不带有不论什么的条件. 当然在我们的实际应用中,这条语句也是非经常常使用到 ...
- WdatePicker开始日期不能大于结束日期
<input class="input_calendar inputcss" id="startDate" runat="server" ...
- Django中载入js和css文件
Django中载入js和css文件 项目的文件夹结构例如以下: mysite |-mysite |-|-static |-|---js和css文件 |-|-|-init.py |-| |-models ...
- 部署SharePoint解决方式包时遇到的问题
部署SharePoint解决方式包时遇到的问题 近期我在使用STSADM.EXE命令部署解决方式包的时候.遇到一个问题.很的难搞. 创建WSP文件非常easy.加入到解决方式库也非常e ...
- iOS使用宏写单例
本文只介绍ARC情况下的单例 过去一直背不下来单例如何写,就是知道这么回事,也知道通过宏来写单例,但是一直记不住,今天就来记录一下 - (void)viewDidLoad { [super v ...
- javascript 递归之 快速排序
1. 快速排序思想 (1)在数据集之中,选择一个元素作为"基准"(pivot). (2)所有小于"基准"的元素,都移到"基准"的左边:所有大 ...