1.1.1 Shell面试题1:批量生成随机字符文件名案例
使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下:
[root@oldgirl C19]# ls /oldboy
apquvdpqbk_oldboy.html mpyogpsmwj_oldboy.html txynzwofgg_oldboy.html
方法一数组
#!/bin/bash ############################################################## # File Name: test1_2.sh # Version: V1.0 # Author: gaobo # Organization: 641627690@qq.com # Created Time : 2017-12-04 14:55:31 # Description: ############################################################## j=0 for i in {a..z} do shuzu[$j]=$i let j++ done echo ${shuzu[@]} echo ${shuzu[1]} for ((m=0;m<10;m++)) do for ((k=0;k<10;k++)) do # cc=${shuzu[$(echo $RANDOM%25|bc)]} # zfc="$cc$zfc" done touch "${zfc}"_oldboy.html zfc= done
方法二随机数
[root@jenkins scripts]# cat test1.sh #!/bin/bash ############################################################## # File Name: test1.sh # Version: V1.0 # Author: gaobo # Organization: 641627690@qq.com # Created Time : 2017-12-04 14:50:09 # Description: ############################################################## for ((i=0;i<=10;i++)) do cc=$(date +%N%F|md5sum|sed -n "s/[0-9 -]//gp") wjm=$(echo ${cc}${cc}|cut -c 1-10) touch ${wjm}_oldboy.html done
==========================================
path=/oldboy
[ -d $path ] || mkdir -p $path
cd $path
for ((i=1;i<=10;i++))
do
touch `echo $RANDOM|md5sum|tr "[0-9]" "[a-z]"|cut -c 1-10`_oldboy.html &>/dev/null
done
tr "[0-9]" "[a-z]" 将内容进行替换就解决了数字的问题