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
脚本执行结果如下: