概述
在计算机科学中,for循环(英语:for loop)是一种编程语言的迭代陈述,能够让程式码反复的执行。
它跟其他的循环,如while循环,最大的不同,是它拥有一个循环计数器,或是循环变数。这使得for循环能够知道在迭代过程中的执行顺序。今天主要用两个实例来介绍下shell脚本的for循环。
1、批量生成随机字符文件名
需求:使用for循环在/data目录下批量创建10个html文件,其中每个文件需要包含10个字符,包含3个随机小写字母和3个随机大写字母加固定字符串hwb
#!/bin/bash
#############################################################
# File Name: make_file.sh
#############################################################
[ -d /data ] || mkdir -p /data
rpm -qa |grep pwgen &>/dev/null
if [ $? -eq 1 ]
then
yum install -y expect &>/dev/null
fi
cd /data &&\\
for i in {1..10}
do
#File_Name=`uuidgen |tr "0-9-" "a-z"|cut -c 1-10`
File_Name2=`mkpasswd -l 10 -c 3 -C 3`
touch ${File_Name2}_hwb.html
done
脚本结果:
2、批量改名特殊案例
将前面结果文件名中的hwb字符串全部改成linux(最好用for循环实现),并且将扩展名html全部改成大写。
#!/bin/bash
#############################################################
# File Name: rename_file.sh
#############################################################
cd /data &&\\
File_name=`ls |sed -r 's#(.*)_hwb.html#\\1#g'`
for i in $File_name
do
if [ -f ${i}_hwb.html ]
then
mv ${i}_hwb.html ${i}_linux.HTML
else
echo "文件修改完成."
exit
fi
done
结果:
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~