返回列表 发帖

for语句

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


运行效果:
图片1.png















例子二,根据姓名列表批量删除用户
[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


效果:
图片2.png





















例子三,根据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

效果:
图片3.png
















例子四,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命令不会终止脚本的运行)
图片4.png















例子五,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命令不会终止脚本的运行)
图片5.png
















例子六,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"

效果:
图片6.png

返回列表