1、写一个脚本,实现随机选人功能,脚本需传递一个参数进去,如    pick.sh 1 出现结果"家驹”  pick.sh 3 出现结果 "落叶" "jason" "贾诩"等随机结果。 (pick.sh N 其中N可以为不大于总人数的任意数)

#!/bin/bash
#Author:星空刺
#Date:--
#文件名必须是一行一个名字
#设定必须有一个参数
cat << EOF
Warning:
.Name_file must be a name of a line!if not,please enter ctrl+c!
.\$ must be exist and \$ is an int greater than zero!
.\$ must be between and the maximum number of names!
***************************************************************
EOF
[ $# -le ] && echo 'Error:$1 must be exist and $1 is an int greater than zero!' && exit
#名字列表文件路径
read -p 'Please input your name_file_path:' name_path
echo "***************************************************************"
#获取一个数组赋值模式列表
[ -z $name_path ] && echo 'Name_file does not exist' && exit
while read line;do
name=(${name[*]} $line)
done < $name_path
#获取数组元素总个数
new_name_c=${#name[@]}
#判定脚本的参数是否在0~数组元素个数之间
echo "The current file contains the names of $new_name_c!"
[ $ -gt $new_name_c ] || [ $ -lt ] && echo 'But $1 must be between 0 and the maximum number of names!' && exit
echo "***************************************************************"
#利用for循环,循环脚本$1次
for (( i=$;i>=;i-- ));do
#通过$RANDOM获取随机数,并通过取余数获取到数组下标0~n内的一个元素
ran=`echo "$RANDOM % $new_name_c" | bc`
#每输出一个,则删除当前对应数组元素,并便于下次判定是否为空,若为空,则说明与上次获取一致
if [ -n "${name[$ran]}" ];then
echo -n "${name[$ran]} "
unset name[$ran]
else
#若为空,则i加1,即本次循环获取失败,不至于少获取一个
let i++
fi
done

shell脚本练习(随机取名)的更多相关文章

  1. Shell 脚本实现随机抽取班级学生

    #/bin/bash function rand(){ min=$ max=$(($-$min+)) num=$(date +%s%N) echo $(($num%$max+$min)) } rnd= ...

  2. Script:shell脚本生成随机字符串

    #!/bin/bash # bash generate random alphanumeric string # # bash generate random character alphanumer ...

  3. tomcat监控,自动重启shell脚本

    tomcat监控,自动重启shell脚本如下,取名 monitor_tomcat.sh: #!/bin/sh # func:自动监控tomcat脚本并且执行重启操作 # 获取tomcat进程ID(其中 ...

  4. shell脚本编程(一) 变量、条件判断、循环

    目录   1. shell脚本编程   2. 运行 Shell 脚本有两种方法   3. 变量   4. 本地变量   5. 环境变量   6. 参数变量   7. 多行注释   8. if条件判断 ...

  5. CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动

    CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动1.关于mysql?MySQL是一个关系型数据库管理 ...

  6. shell脚本俄罗斯方块游戏

    亲自测试了一个大牛写的shell脚本,感兴趣可以看看,效果如下:

  7. shell脚本编程之for语句、if语句使用介绍

    介绍了shell脚本编程之for语句.if语句的使用方法. 上部: 面向过程: 顺序执行 选择执行: if, case 循环执行: for, while, until 一.for语句 格式:      ...

  8. shell脚本进阶之循环判断

    p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; f ...

  9. 《Linux命令行与shell脚本编程大全》第二十二章 gawk进阶

    gawk是一门功能丰富的编程语言,你可以通过它所提供的各种特性来编写好几程序处理数据. 22.1 使用变量 gawk编程语言支持两种不同类型的变量: 内建变量和自定义变量 22.1.1 内建变量 ga ...

随机推荐

  1. Google机器学习笔记(七)TF.Learn 手写文字识别

    转载请注明作者:梦里风林 Google Machine Learning Recipes 7 官方中文博客 - 视频地址 Github工程地址 https://github.com/ahangchen ...

  2. 5W1H分析法

    "5W1H分析法"也叫"六何分析法",它是一种分析方法也可以说是一种创造技法.是对选定的项目.工序和操作,都要从原因(Why).对象(What).地点(Wher ...

  3. (转)CentOS搭建Nagios监控

    A.Nagios服务端1.安装软件包 yum install -y httpd 2.下载nagios wget http://syslab.comsenz.com/downloads/linux/na ...

  4. 实例解析shell子进程(subshell )

    http://blog.csdn.net/sosodream/article/details/5683515 http://blog.csdn.net/firefoxbug/article/detai ...

  5. Codeforces 494D Upgrading Array

    http://codeforces.com/contest/494/problem/D 题意:给一个数组,和一个坏质数集合,可以无数次地让1到i这些所有数字除以他们的gcd,然后要求Σf(a[i])的 ...

  6. 模拟IIC总线汇编程序软件包

    一.概述 为了非常方便地对 I2C 从器件进行快速的.正确的读写操作,我们为此而设计出虚拟 I2C 总线操作平台软件包.本软件包是主方式下的虚拟 I2C 总线软件包,只要用户给子程序提供几个主要的参数 ...

  7. VCMI Mods list

    http://heroescommunity.com/viewthread.php3?TID=40902 http://heroes3wog.net/ http://heroes3towns.com/ ...

  8. extern "c"用法

    在Windows驱动开发中,如果是使用C++开发的,那么必须在有些关键函数钱加extern c 的关键词,否则编译出来的函数,跟C语言编译的函数不同,导致驱动程序不能 被有效识别. 最关键的是Driv ...

  9. php将会话保存在数据库里

    php默认把会话保存在临时文件中,保存在数据库中可以提高安全性,在共享主机服务器上,所有web站点都使用同一个临时目录,这意味着数十个程序都在同一位置进行文件读取的操作,我们很容易就编写一个脚本从这个 ...

  10. windows phone中三种解析XML的方法

    需求如下, 项目需要将一段xml字符串中的信息提取出来 <?xml version=""1.0"" encoding=""UTF-8& ...