关于LINUX 中取随机值的几种方法
取随机数(数字):
使用RANDOM(必须大写)
默认取值为0-32767。如果需要取特殊范围内的数字,可以使用RANDOM%数字进行去取值,例如:echo $((RANDOM%100)),取值的范围是0-100,可以通过echo $((RANDOM%30+10))这种方式对初始值进行限定。
[root@hz ~]# echo $RANDOM
12632
[root@hz ~]# echo $((RANDOM%100))
72
[root@hz ~]# echo $((RANDOM%30+10))
37
使用date取数值:date +%s$N
[root@hz ~]# date +%s$N #获取从1970-01-01 00:00:00 UTC开始到现在的秒数,值是唯一值,但是存在规律
1591797090
取随机字符串:
1. 通过md5sum对RANDOM进行转化和截取,例如:
[root@hz ~]# echo $RANDOM | md5sum #对去RANDA的取值进行MD5加密
de9df61b1f1bde18f537ee2560f9dea4 -
[root@hz ~]# echo $RANDOM | md5sum | cut -c 15-30 ##对去RANDA的取值进行MD5加密并截取第15-20位的字符串
781d9a986ef6c24b
2. 通过openssl rand -base64 (需要的取值位数)生成随机字符串
[root@hz ~]# openssl rand -base64 12 #取值12位
sUVCZtCnYogYy9p3
[root@hz ~]# openssl rand -base64 8 #取值8位
pT6eWMo9lgs=
[root@hz ~]# openssl rand -base64 6 #取值6位
KzBwtHyU
[root@hz ~]# openssl rand -base64 18 #取值18位
ktHR/rQtAoRMi1A1dN8PrMJj
3. 使用UUID:cat /proc/sys/kernel/random/uuid
[root@hz ~]# cat /proc/sys/kernel/random/uuid
e27f517a-5698-40bf-90e6-e3f81aebb8f5
这是在Linux 下取随机数值的几种方式,但在实际工作中我们可以通过一种或者几种方法进行组合进行取值