shell生成随机字符的几种方法

一般在写shell脚本的时候,会有需要生成一些随机字符,比如在写批量生成用户+随机密码的脚本的时候,就会用到随机生成的字符串来作为新建用户的密码。以下的几种方式可以随机生成字符串。当然,还要许多方法都能完成文章标题的目的,这里仅列举出来部分的。

1.使用shell的random变量

[root@virmach ~]# echo $RANDOM
1908
2.使用openssl

[root@virmach ~]# openssl rand -base64 8 # 8是8位的意思
K0NYLr0u0Xo=
3.random+openssl混合

[root@virmach ~]# echo $RANDOM openssl rand -base64 8
20446 +A7KGgNfPLc=
4.mkpasswd方法

[root@virmach ~]# yum -y install expect
[root@virmach ~]# mkpasswd -l 8
Ykv{b12R
5.uuid方法

[root@virmach ~]# cat /proc/sys/kernel/random/uuid | md5sum |cut -c 1-9 # 1-9 取8位,最后的9是结束。
362b84efe
6.dev方法

[root@virmach ~]# head /dev/urandom |cksum |md5sum |cut -c 1-9
89da0c70b
7.date日期方法

[root@virmach ~]# date +%s%N | md5sum |cut -c 1-9
4738152c2
8.for循环方法

[root@virmach ~]# for i in seq 20;do date +%s%N | md5sum | cut -c 1-9;done | sort | uniq -c | sort -rn -k1
1 fa39a560c
1 ecd4ceffd
1 d55c46cbc
1 cb62000bd
1 c59bd7c47
1 c3184203f
1 b425ea72d
1 9a7862d2c
1 89937f1f6
1 77ada8ace
1 64b21e854
1 5d846676c
1 5531089be
1 539eeb6f1
1 31b408a3d
1 3121ec947
1 2cf29525f
1 0c4896052
1 0a50fe20f
1 085964e34

[root@virmach ~]# for i in seq 20;do echo $RANDOM | md5sum | cut -c 1-9 ;done | sort | uniq -c | sort -rn -k1
1 f5e451aa0
1 dda67bca5
1 d0e33a01c
1 cadd4e4b2
1 bd3c38da5
1 bafa3dae3
1 b558cb841
1 a9a2bc409
1 a8741275b
1 9ed3345eb
1 781e1b49e
1 74e440e32
1 5ab403a0f
1 4df853e04
1 4dbe8c068
1 3044e58f9
1 21daea994
1 0eb55df9e
1 0c9d59d9b
1 022520557

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值