当前位置:首页>Linux>Linux30天入门计划|Day15:Shell循环实战!for&while实现批量自动化运维

Linux30天入门计划|Day15:Shell循环实战!for&while实现批量自动化运维

  • 2026-08-25 08:49:30
Linux30天入门计划|Day15:Shell循环实战!for&while实现批量自动化运维

昨天Day14我们入门了Shell脚本变量、判断、基础语法。

只会判断还不够,真正的自动化,全靠循环!

运维工作中:

批量创建文件、批量改名、批量解压、批量清理日志、批量检测服务、批量备份……

所有“重复100次的工作”,全部交给循环!

Day15带你吃透两大核心循环:for循环、while循环

学完今天,你彻底告别手动重复操作,具备初级自动化运维能力!

一、今日学习目标

✅ 掌握 for 循环:固定次数、遍历文件、遍历列表

✅ 掌握 while 循环:条件循环、无限循环监控

✅ 学会批量创建/删除文件、用户、目录

✅ 掌握脚本批量处理日志、批量重命名实战

✅ 写出可直接上线使用的自动化小工具

二、for循环(工作最高频)

适用场景:已知次数、已知文件列表、批量操作

1、基础数字循环

bash  

#!/bin/bash

for i in {1..5}

do

  echo "当前循环次数:$i"

done

含义:循环输出1到5

2、遍历目录所有文件

bash  

#!/bin/bash

for file in `ls /home`

do

  echo "发现文件:$file"

done

3、批量创建10个测试文件

bash  

#!/bin/bash

for i in {1..10}

do

  touch test_$i.txt

done

三、while循环(条件循环神器)

适用场景:不确定次数、持续监控、无限循环巡检

1、基础while条件循环

bash  

#!/bin/bash

a=1

while [ $a -le 5 ]

do

  echo "循环计数:$a"

  a=$((a+1))

done

2、无限循环(服务器监控必备)

bash  

#!/bin/bash

while true

do

  echo "持续监控中……"

  sleep 2

done

sleep 2:暂停2秒,防止CPU跑满

四、循环搭配if判断(企业标准组合)

90%实用脚本 = for/while + if

实战:批量判断文件是否存在

bash  

#!/bin/bash

for file in test1.txt test2.txt test3.txt

do

  if [ -f $file ];then

    echo "$file 存在"

  else

    echo "$file 不存在,自动创建"

    touch $file

  fi

done

五、四大企业级循环实战脚本(直接复用)

实战1:批量创建用户

bash  

#!/bin/bash

for user in user01 user02 user03

do

  useradd $user

  echo "123456" | passwd --stdin $user

done

实战2:批量清空目录日志

bash  

#!/bin/bash

for log in `ls /var/log/*.log`

do

  > $log

done

实战3:批量修改文件后缀

bash  

#!/bin/bash

for file in *.txt

do

  mv $file ${file%.txt}.bak

done

实战4:while实时检测Nginx状态

bash  

#!/bin/bash

while true

do

  if [ `ps -ef |grep nginx|grep -v grep|wc -l` -eq 0 ];then

    echo "Nginx已宕机,尝试重启"

    systemctl restart nginx

  fi

  sleep 3

done

六、循环脚本避坑指南(新手必看)

1. for循环遍历文件不要带特殊空格文件名,容易错乱

2. while无限循环必须加 sleep,否则CPU100%

3. 循环内部路径全部用绝对路径

4. 批量删除脚本,一定要先echo预览再执行

5. 循环变量空格必须严格,[]左右必须空格

七、今日实操作业(必敲一遍)

bash  

# 1.批量创建5个文件

vim cycle.sh

#!/bin/bash

for i in {1..5}

do

  touch day15_$i.txt

  echo "创建成功:day15_$i.txt"

done

# 2.授权运行

chmod +x cycle.sh

./cycle.sh

八、今日知识点总结

1. for循环:适合批量、固定次数、遍历文件

2. while循环:适合持续监控、无限巡检

3. 循环+判断,构成90%自动化运维脚本

4. 可实现批量建用户、批量改文件、批量清日志、服务自启监控

5. 学完循环,真正脱离纯手动运维,迈入自动化阶段

遇到问题欢迎评论区留言探讨,关注账号,持续输出运维干货。

最新文章

随机文章