shell 随机生成数字或者字符串

使用openssl

[root@rsync_server tmp]# openssl rand -base64 8
ACbl4MMwEAM=
[root@rsync_server tmp]# openssl rand -base64 8 | tr -d “0-9” //删除字符串中的数字
jcY/JpGlcU=
[root@rsync_server tmp]# openssl rand -base64 24 | tr -d “0-9” //指定生成字符串的长度
oAJxfiLovgGyOGQMP+HcNmrjsUzv
[root@rsync_server tmp]# openssl rand -base64 24 | md5sum |tr -d “0-9” |cut -c1-10 //MD5sum后全部都是小写字母,然后删除数字,取10个
eafbdccffc
[root@rsync_server tmp]# openssl rand -base64 8 | cksum //cksum后全部为数字
529837495 13
[root@rsync_server tmp]# openssl rand -base64 8 | cksum |cut -c1-8 //取8个数字
26791845

使用/dev/urandom

[root@rsync_server tmp]# < /dev/urandom tr -dc 0-9-A-Z-a-z-/|head -c ${1:-10};echo
8UIwHgFVH0
#tr参数
-c或——complerment:取代所有不属于第一字符集的字符;
-d或——delete:删除所有属于第一字符集的字符;
1.生成10个小写字母
[root@rsync_server tmp]# < /dev/urandom tr -dc a-z | head -c ${1:-10};echo
cldtvsmshb
2.生成10个大写字母
[root@rsync_server tmp]# < /dev/urandom tr -dc A-Z | head -c ${1:-10};echo
JBDSHYDEZI
3.生成10个数字
[root@rsync_server tmp]# < /dev/urandom tr -dc 0-9 | head -c ${1:-10};echo
2804817451
4.生成10个随机字符(包含数字,大写字母,小写字母)
[root@rsync_server tmp]# < /dev/urandom tr -dc 0-9-A-Z-a-z|head -c ${1:-10};echo
4GNGhVK7a5
5.生成10个随机字符(包含数字,大写字母,小写字母,特殊字符)
[root@rsync_server tmp]# < /dev/urandom tr -dc ‘0-9-A-Z-a-z-/’|head -c ${1:-10};echo //特殊字符随意添加
vuSSjZLu-2

[root@rsync_server tmp]# < /dev/urandom tr -dc ‘0-9-/@#~$%^&*()[]{}’|head -c ${1:-10};echo
#/9%4/]~75
[root@rsync_server tmp]# < /dev/urandom tr -dc ‘0-9-/@#~$%^&*()[]{}’|head -c ${1:-10};echo
@)8^{34-*3

[root@rsync_server tmp]# cat 1.sh
#!/bin/bash
for i in {1…10}
do
a=`< /dev/urandom tr -dc '0-9-/@#~$%^&()[]{}’|head -c ${1:-10}`
echo $a>>/tmp/a.txt
done
[root@rsync_server tmp]# cat a.txt
5(07
{({5
}}%2}%{4
6-15]#2478
#27095-$8/
}^47**{868
9
)]29%$$@
2%~4})3-84
~(#^)49566
7&/9[841*$
92{%$/2]

–==创建10个随机字符串组成的文件
[root@rsync_server lbw]# pwd
/tmp/lbw
[root@rsync_server lbw]# ls
[root@rsync_server lbw]# cat /tmp/1.sh
#!/bin/bash
for i in {1…10}
do
a=`< /dev/urandom tr -dc ‘a-zA-Z’|head -c ${1:-10}`
touch /tmp/lbw/$a.txt
done
[root@rsync_server lbw]# sh /tmp/1.sh
[root@rsync_server lbw]# ll
总用量 0
-rw-r–r-- 1 root root 0 7月 20 16:41 CWtvdKblFg.txt
-rw-r–r-- 1 root root 0 7月 20 16:41 EjzUMCfswK.txt
-rw-r–r-- 1 root root 0 7月 20 16:41 gXvhjebHTB.txt
-rw-r–r-- 1 root root 0 7月 20 16:41 GyGyRITeIn.txt
-rw-r–r-- 1 root root 0 7月 20 16:41 NKBGrPedWP.txt
-rw-r–r-- 1 root root 0 7月 20 16:41 nuTWOKpjOA.txt
-rw-r–r-- 1 root root 0 7月 20 16:41 oXziSHlXHY.txt
-rw-r–r-- 1 root root 0 7月 20 16:41 SwoaCyaFjo.txt
-rw-r–r-- 1 root root 0 7月 20 16:41 TPpLohMHHG.txt
-rw-r–r-- 1 root root 0 7月 20 16:41 TqhXUbhtRR.txt

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值