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

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

转载于:https://www.cnblogs.com/aaa103439/p/3376497.html

shell脚本练习(随机取名)相关推荐

  1. (石头、剪刀、布)shell脚本,随机对比,case的应用

    脚本实现人机<石头,剪刀,布>游戏,机器应用随机方法,结合用户输入给出结果,文章有两种方法,重在理解,第一种方法是该脚本的逻辑方面,第二种较容易理解. 一 : 第一种方法,让机器给出一个随 ...

  2. shell脚本执行php文件_分享两个shell脚本实例--批量生成随机字符文件名和批量改名...

    概述 在计算机科学中,for循环(英语:for loop)是一种编程语言的迭代陈述,能够让程式码反复的执行. 它跟其他的循环,如while循环,最大的不同,是它拥有一个循环计数器,或是循环变数.这使得 ...

  3. Shell脚本批量创建用户并随机生成密码

    Shell脚本批量创建用户并随机生成密码 要求:批量创建10个系统账号oldboy01-oldboy10,并设置生成密码(密码不同). 实现脚本: #!/bin/bash #Question3 for ...

  4. 随机生成彩票的shell脚本

    1.这个脚本很简单,基本跑一遍,都懂了. #!/bin/bash #Random number list p1=$(($(($RANDOM%33))+1)) p2=$(($(($RANDOM%33)) ...

  5. shell脚本初级教学(从基本脚本开始学起)

    shell脚本的意义就在于实现以后的自动化运维,Linux其实也是基于shell脚本的 所以我今天给大家教两个简单的脚本,并且解释. 第一个抽奖脚本: 思路:首先创建一个vim文件 [root@ser ...

  6. Linux操作系统(二:shell脚本)

    练习一:编写shell脚本,计算1-100的和: 练习二:将一目录下所有的文件的扩展名改为bak 练习三:写一个脚本,统计./etc/ 目录下共有多少个目录文件 练习四:写一个脚本,依次向/etc/p ...

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

    亲自测试了一个大牛写的shell脚本,感兴趣可以看看,效果如下: 代码如下: 1 #!/bin/bash 2 3 # Tetris Game 4 # 10.21.2003 xhchen<[ema ...

  8. Android自动化测试之Shell脚本一——模拟触屏事件

    摘自:http://guolin.guosfamily.com/2012/02/15/android-automated-test-by-shell-touch-event/ Android自动化测试 ...

  9. SHELL脚本自动化部署MFS分布式文件系统

    前言:在我们运维中,最常见的文件存储系统大概就是NFS了,但是随着网站压力不断增加,NFS渐渐不能满足企业数据增长需求,有木有自动扩展.高效.部署.实施方便快捷的分布式存储供我们使用呢?那我们来看一下 ...

最新文章

  1. 干货|六维力和力矩传感器的技术与应用
  2. 也谈.Net中间语言——破解Delphi2CS行数和时间限制
  3. 数据结构 - 把一个整数数组放到二叉树中使其有序(C++)
  4. 《Redis实战》一第一部分 入门
  5. Erlang的边界检查(3)
  6. Linux 29岁,你不知道的29个重大事件
  7. opencv双目视觉标定、匹配和测量 (附代码)(转载)
  8. 如何使用python计算2个毫秒级字符串的计算
  9. TableCache设置过小造成MyISAM频繁损坏
  10. [公告]请不要在首页转载文章
  11. FxFactory pro 8 for Mac(视觉特效包处理工具)直装版
  12. 绿点 | 区块链介入下的绿色经济 x 妳格局LadyVision x WinMap+!
  13. 从零开始学数据库-MySQL
  14. Windows远程桌面如何设置分辨率
  15. 冲激函数和傅里叶变换
  16. 计算机屏幕出现条纹w7,电脑重装win7后屏幕出现条纹怎么办
  17. 【android相册】加载相册中的图片,实现图片缓存
  18. solidworks创新作业无限魔方
  19. C语言 写一个函数求两个数的较大值
  20. 小程序获取上一页的数据修改上一个页面的数据

热门文章

  1. Tycho build 3: 创建一个全局构建项目
  2. php js sdk 签名算法,签名算法 · PAYJS API 开发文档
  3. 免费合并多个PDF文件
  4. 线下WINDOWS主机挂载华为云存储
  5. STM32CubeMx移植DSP库 傅立叶变化(FFT)测试
  6. 关于VS2022 C++报错 const char* 类型的实参与char *类型的形参不兼容解决办法
  7. MD5的标准幻数的不同写法
  8. DNS_PROBE_FINISHED_NXDOMAIN完美解决办法
  9. 一文了解销售软件产品的增值税即征即退政策
  10. 《实战 Linux Socket 编程》Warren W.Gay 图解Key-point学习笔记-1