ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

RANDOM随机数

2020-07-10 21:04:28  阅读:373  来源: 互联网

标签:RANDOM% RANDOM echo web2 随机数 139 root


系统变量: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

 

标签:RANDOM%,RANDOM,echo,web2,随机数,139,root
来源: https://www.cnblogs.com/goujinyang/p/13281162.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有