其他分享
首页 > 其他分享> > RANDOM随机数

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

 

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