概述
在计算机科学中,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 /datarpm -qa |grep pwgen &>/dev/nullif [ $? -eq 1 ] then yum install -y expect &>/dev/nullficd /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.htmldone
![001beded6c4d71706253d560a059bb67.png](https://img-blog.csdnimg.cn/img_convert/001beded6c4d71706253d560a059bb67.png)
脚本結果:
![68619e4f1ab67d9b0a2e8cda4dc7385a.png](https://img-blog.csdnimg.cn/img_convert/68619e4f1ab67d9b0a2e8cda4dc7385a.png)
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 fidone
![932ff32525d284ca7b763a19091ddca4.png](https://img-blog.csdnimg.cn/img_convert/932ff32525d284ca7b763a19091ddca4.png)
结果:
![a1f3978b343fe54c4b7b181b489417ac.png](https://img-blog.csdnimg.cn/img_convert/a1f3978b343fe54c4b7b181b489417ac.png)
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
![e647020cec71b5636eaa36314d466b5e.gif](https://img-blog.csdnimg.cn/img_convert/e647020cec71b5636eaa36314d466b5e.gif)