Linux网络操作系统-第23节-Shell流程控制——循环语句
要建 10 个用户、改 100 个文件权限,敲 100 遍命令不现实——循环就是让机器替你重复。

一、for:遍历列表
# 批量创建 user1 ~ user10
for i in {1..10}
do
useradd user$i 2>/dev/null
echo "123456" | passwd --stdin user$i &>/dev/null
done
echo "10 个用户创建完毕"
# 遍历文件:处理 /etc 下所有 conf
for f in /etc/*.conf
do
echo "处理 $f"
done
二、while:条件循环
# 计数器循环
i=1
while [ $i -le 10 ]
do
echo $i
i=$((i+1))
done
# 逐行读文件(运维高频用法)
while read line
do
echo $line | cut -d: -f1 # 截取用户名列
done < /etc/passwd
三、实战:网段存活扫描
for i in {1..254}
do
ping -c1 -W1 192.168.200.$i &>/dev/null \
&& echo "192.168.200.$i 在线"
done
for 与 while 的选择:遍历已知列表用 for,按条件反复或逐行处理用 while。作业:写脚本扫描 192.168.200.1-254 网段,把在线主机存进 alive.txt。

