RANDOM随机数
系统变量:RANDOM,默认会产生0-32767之间得随机数
调用变量产生随机数
[root@web2 ~]# echo $RANDOM 10851 [root@web2 ~]# set |grep RANDOM //查看系统上一次生成得随机数 RANDOM=10851
[root@web2 ~]# echo $[$RANDOM%2] //取0-1之间的随机数 1 [root@web2 ~]# echo $[$RANDOM%5] //取0-4之间的随机数 3 [root@web2 ~]# echo $[$RANDOM%39+1] //取1-39之间的随机数 31
取10-99之间任意两位数(思路为取0-89的数然后加10)
[root@web2 ~]# echo $[$RANDOM%90+10] 92 [root@web2 ~]# echo $[$RANDOM%90+10] 52 [root@web2 ~]#
产生100-999之间的任意三位数(首先是0-999,然后算0+多少等于100)
[root@web2 ~]# echo $[$RANDOM%900+100] 195 [root@web2 ~]# echo $[$RANDOM%900+100] 433 [root@web2 ~]# echo $[$RANDOM%900+100] 758
实战案例:随机产生以139开头的电话号码
脚本实现结果,产生一个1.txt的文件,每行都是139开头的电话号码,共200行
思路:
1)产生200个号码首先需要使用循环,循环200次
2)139之后的数字都是随机的,可以每个数字随机产生
3)将产生的每个随机数定义为一个变量,加上139的前缀保存至1.txt
脚本如下:
vim num.sh
#!/bin/bash #产生139开头的号码并保存至文件 for ((i=1;i<=200;i++)) do n1=$[$RANDOM%10] n2=$[$RANDOM%10] n3=$[$RANDOM%10] n4=$[$RANDOM%10] n5=$[$RANDOM%10] n6=$[$RANDOM%10] n7=$[$RANDOM%10] n8=$[$RANDOM%10] echo "139$n1$n2$n3$n4$n5$n6$n7$n8" >>/root/1.txt done
结果验证:
抽取幸运电话号码 200个中选5个,号码中间显示****
思路:
1)确定幸运号码所在的行
2)将号码提取出来 head -随机行号 1.txt |tail -1
3)隐藏信息,中间****替换
4)源文件中删除已中奖号码
补充:##截取变量中的一部分
[root@web2 ~]# n=13970450245 [root@web2 ~]# echo ${n:7:4} //位数是从0开始数 0245
脚本如下:
#!/bin/bash file=/root/1.txt for i in {1..5} do line=`wc -l $file|cut -d' ' -f1` luck_line=$[RANDOM%$line+1] lucky=`head -$luck_line $file|tail -1` echo "139****${lucky:7:4}" echo $lucky >> luck.txt sed -i "/$lucky/d" $file done
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗