for循环语句
使用for循环语句时,需要指定一个变量(包含一个取值列表),针对每一个不同的取值,重复执行相同的命令序列,直到变量使用完才退出循环。
例子一,根据姓名列表批量添加用户
[root@localhost ~]# cat test.sh
#!/bin/bash
cat >/root/user.txt<< EOF
marry
happy
jacky
EOF
uu=$(cat /root/user.txt)
for aa in $uu
do
useradd -c jacky.company $aa &> /dev/null
echo "123" | passwd --stdin $aa &> /dev/null
done
运行效果:
例子二,根据姓名列表批量删除用户
[root@localhost ~]# cat test.sh
#!/bin/bash
cat >/root/user.txt<< EOF
marry
happy
jacky
EOF
uu=$(cat /root/user.txt)
for aa in $uu
do
userdel -r $aa &> /dev/null
done
效果:
例子三,根据IP地址列表检查远程主机状态
[root@localhost ~]# cat test.sh
#!/bin/bash
cat >/root/ping.txt<< EOF
47.75.39.177
172.16.8.2
172.16.8.3
EOF
shijian=`date +"%Y-%m-%d--%H:%M:%S"`
list=$(cat /root/ping.txt)
for aa in $list
do
ping -c 4 -i 0.2 -w 3 $aa &> /dev/null
if [ $? -eq 0 ]; then
echo "Host $aa is up... $shijian" >> /root/host-ping.txt
else
echo "Host $aa is down... $shijian" >> /root/host-ping.txt
fi
done
效果:
例子四,break命令:退出整个for循环
脚本代码:
[root@localhost ~]# cat test.sh
#!/bin/bash
for i in `seq 1 5`
do
echo $i
if [ $i -eq 3 ] ;then
break
fi
echo $i
done
echo "test break"
效果:(break命令不会终止脚本的运行)
例子五,continue命令:退出本次for循环
脚本代码:
[root@localhost ~]# cat test.sh
#!/bin/bash
for i in `seq 1 5`
do
echo $i
if [ $i -eq 3 ] ;then
continue
fi
echo $i
done
echo "test continue"
运行效果:(continue命令不会终止脚本的运行)
例子六,exit命令:终止脚本的运行
脚本代码:
[root@localhost ~]# cat test.sh
#!/bin/bash
for i in `seq 1 5`
do
echo $i
if [ $i -eq 3 ] ;then
exit 0
fi
echo $i
done
echo "test exit"
效果:
|