shell编程 ----- 随机数

1.两种产生随机数的方法

第一种:

RAMDOM  0-32767

[root@localhost Desktop]# echo $RANDOM
22565
[root@localhost Desktop]# echo $RANDOM
29222
[root@localhost Desktop]# echo $RANDOM
16112

第二种:

openssl rand -base64 40--长度

[root@localhost Desktop]# openssl rand -base64 40
DvqaR/dTMJJi0yYeFcCF6EiSGEmkTlrsA3VE6KxMPl0glvzZ2uf+Ig==


[root@localhost Desktop]# random=`openssl rand -base64 40`
[root@localhost Desktop]# echo $random
UBPeJOipkRgzNTPEvWK+XC3fKA48lNPyzeUfY3Kyd/Iz2yrIHED+rQ==
##随机产生26个英文字母组成的序列
[root@localhost Desktop]# echo $random | sed 's/[^a-z]//g'
eipkgzvflyzefydzyrr

 

 

练习题1:

使用for循环在/westos目录下批量创建10个html文件,其中每个文件需要版汉10个随机小写字母加固定字符串westos

#!/bin/bash

Path=/westos

[ -d "$Path" ] || mkdir -p $Path

for i in `seq 10`
do
    random=$(openssl rand -base64 40 | sed 's/[^a-z]//g' | cut -c 3-12)
    touch $Path/${random}_westos.html
done

脚本执行结果如下:

 

练习题2:
创建10个用户,用户名为westos01-10,并给随机密码
 

#!/bin/bash

. /etc/init.d/functions

user="westos"
passfile="/tmp/user.log"

for num in `seq -w 10`
do
    pass="`echo $RANDOM | md5sum | cut -c 3-12`"
    useradd $user$num &> /dev/null && {
        echo "$pass" | passwd --stdin $user$num &> /dev/null
        echo -e "user:$user$num\tpasswd:$pass" >> $passfile
    }

if [ $? -eq 0 ];then
    action "$user$num is ok" /bin/true
else
    action "$user$num is failed" /bin/false
fi
done

 

脚本执行结果如下:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值