使用date产生随即数字串或字符串

–=使用date产生随即数字串或字符串===
%s为秒 %N为纳秒,这样就避免了重复
[root@nezhdb01 tmp]# cat lbw.sh
#!/bin/bash
n=$(date +%s%N)
echo $n
echo $n |wc -m
[root@nezhdb01 tmp]# ./lbw.sh
1563637164657358637
20
[root@nezhdb01 tmp]# ./lbw.sh
1563637165832149457
20

在秒和纳秒的基础上再加上random产生的随即数字,就更加不会出现重复了。
[root@nezhdb01 tmp]# cat lbw.sh
#!/bin/bash
n=$(date +%s%N$RANDOM)
echo $n
echo $n |wc -m
[root@nezhdb01 tmp]# ./lbw.sh
156363707864948743310153
25
[root@nezhdb01 tmp]# ./lbw.sh
156363708283283217430131
25

将产生的随机数字经过md5sum加密转换为字符串
[root@nezhdb01 tmp]# cat lbw.sh
#!/bin/bash
n=$(date +%s%N$RANDOM | md5sum)
echo $n
echo $n |wc -m
[root@nezhdb01 tmp]# ./lbw.sh
3e34641f9832f9b8355c36a2a549f77e -
35
[root@nezhdb01 tmp]# ./lbw.sh
837cb5a97f19385ce62d793f30c28005 -
35

使用tr转换命令,将数字替换为大写字母,这样就可以生成随即的字母了
[root@nezhdb01 tmp]# cat lbw.sh
#!/bin/bash
n=$(date +%s%N$RANDOM | md5sum | tr [0-9] [A-Z])
echo $n
echo $n |wc -m
[root@nezhdb01 tmp]# ./lbw.sh
cDDBCHAFCJGEdFAebIBabdeHHcDGfGde -
35
[root@nezhdb01 tmp]# ./lbw.sh
DCdJDBfFBHBIceHEdEbDGaCGeJCDACIB -
35
[root@nezhdb01 tmp]# ./lbw.sh
CGIfGIcfceDfdcaDdCIAfcbbfdEAGdAI -
35

使用cut命令截取前10个字符
[root@nezhdb01 tmp]# cat lbw.sh
#!/bin/bash
n=$(date +%s%N$RANDOM | md5sum | tr [0-9] [A-Z] | cut -c 1-10)
echo $n
echo $n |wc -m
[root@nezhdb01 tmp]# ./lbw.sh
CEcbfacEdD
11
[root@nezhdb01 tmp]# ./lbw.sh
AJcEBGeJeD
11

使用md5sum加密后,可以用tr 转换将字母全部转换为数字,就生产了随即的数字串
[root@nezhdb01 tmp]# cat lbw.sh
#!/bin/bash
n=$(date +%s%N$RANDOM | md5sum | tr [a-z] [0-9])
echo $n
echo $n |wc -m
[root@nezhdb01 tmp]# ./lbw.sh
35198437745666559617683605271559 -
35
[root@nezhdb01 tmp]# ./lbw.sh
56275898023555409365997373164457 -
35
[root@nezhdb01 tmp]# ./lbw.sh
53445460512210720971141946239073 -
35

截取一部分数字串,就可以生成固定长度的数字串。
[root@nezhdb01 tmp]# cat lbw.sh
#!/bin/bash
n=$(date +%s%N$RANDOM | md5sum | tr [a-z] [0-9] | cut -c 1-10)
echo $n
echo $n |wc -m
[root@nezhdb01 tmp]# ./lbw.sh
1259206094
11
[root@nezhdb01 tmp]# ./lbw.sh
5449081459
11
[root@nezhdb01 tmp]# ./lbw.sh
8074603062
11

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值