shell脚本练习(随机取名)
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脚本练习(随机取名)相关推荐
- (石头、剪刀、布)shell脚本,随机对比,case的应用
脚本实现人机<石头,剪刀,布>游戏,机器应用随机方法,结合用户输入给出结果,文章有两种方法,重在理解,第一种方法是该脚本的逻辑方面,第二种较容易理解. 一 : 第一种方法,让机器给出一个随 ...
- shell脚本执行php文件_分享两个shell脚本实例--批量生成随机字符文件名和批量改名...
概述 在计算机科学中,for循环(英语:for loop)是一种编程语言的迭代陈述,能够让程式码反复的执行. 它跟其他的循环,如while循环,最大的不同,是它拥有一个循环计数器,或是循环变数.这使得 ...
- Shell脚本批量创建用户并随机生成密码
Shell脚本批量创建用户并随机生成密码 要求:批量创建10个系统账号oldboy01-oldboy10,并设置生成密码(密码不同). 实现脚本: #!/bin/bash #Question3 for ...
- 随机生成彩票的shell脚本
1.这个脚本很简单,基本跑一遍,都懂了. #!/bin/bash #Random number list p1=$(($(($RANDOM%33))+1)) p2=$(($(($RANDOM%33)) ...
- shell脚本初级教学(从基本脚本开始学起)
shell脚本的意义就在于实现以后的自动化运维,Linux其实也是基于shell脚本的 所以我今天给大家教两个简单的脚本,并且解释. 第一个抽奖脚本: 思路:首先创建一个vim文件 [root@ser ...
- Linux操作系统(二:shell脚本)
练习一:编写shell脚本,计算1-100的和: 练习二:将一目录下所有的文件的扩展名改为bak 练习三:写一个脚本,统计./etc/ 目录下共有多少个目录文件 练习四:写一个脚本,依次向/etc/p ...
- shell脚本俄罗斯方块游戏
亲自测试了一个大牛写的shell脚本,感兴趣可以看看,效果如下: 代码如下: 1 #!/bin/bash 2 3 # Tetris Game 4 # 10.21.2003 xhchen<[ema ...
- Android自动化测试之Shell脚本一——模拟触屏事件
摘自:http://guolin.guosfamily.com/2012/02/15/android-automated-test-by-shell-touch-event/ Android自动化测试 ...
- SHELL脚本自动化部署MFS分布式文件系统
前言:在我们运维中,最常见的文件存储系统大概就是NFS了,但是随着网站压力不断增加,NFS渐渐不能满足企业数据增长需求,有木有自动扩展.高效.部署.实施方便快捷的分布式存储供我们使用呢?那我们来看一下 ...
最新文章
- 干货|六维力和力矩传感器的技术与应用
- 也谈.Net中间语言——破解Delphi2CS行数和时间限制
- 数据结构 - 把一个整数数组放到二叉树中使其有序(C++)
- 《Redis实战》一第一部分 入门
- Erlang的边界检查(3)
- Linux 29岁,你不知道的29个重大事件
- opencv双目视觉标定、匹配和测量 (附代码)(转载)
- 如何使用python计算2个毫秒级字符串的计算
- TableCache设置过小造成MyISAM频繁损坏
- [公告]请不要在首页转载文章
- FxFactory pro 8 for Mac(视觉特效包处理工具)直装版
- 绿点 | 区块链介入下的绿色经济 x 妳格局LadyVision x WinMap+!
- 从零开始学数据库-MySQL
- Windows远程桌面如何设置分辨率
- 冲激函数和傅里叶变换
- 计算机屏幕出现条纹w7,电脑重装win7后屏幕出现条纹怎么办
- 【android相册】加载相册中的图片,实现图片缓存
- solidworks创新作业无限魔方
- C语言 写一个函数求两个数的较大值
- 小程序获取上一页的数据修改上一个页面的数据
热门文章
- Tycho build 3: 创建一个全局构建项目
- php js sdk 签名算法,签名算法 · PAYJS API 开发文档
- 免费合并多个PDF文件
- 线下WINDOWS主机挂载华为云存储
- STM32CubeMx移植DSP库 傅立叶变化(FFT)测试
- 关于VS2022 C++报错 const char* 类型的实参与char *类型的形参不兼容解决办法
- MD5的标准幻数的不同写法
- DNS_PROBE_FINISHED_NXDOMAIN完美解决办法
- 一文了解销售软件产品的增值税即征即退政策
- 《实战 Linux Socket 编程》Warren W.Gay 图解Key-point学习笔记-1