for 语法
shell:
for 变量名 [ in 取值列表]
do
循环体
done
1:批量ping网段内的主机
[root@lxy for]# cat pingfor.sh
#!/bin/bash
##批量ping主机
for i in {1..254}
do
{ #{}&,将大括号里面的内容放入后台去执行
host=192.168.0.$i
ping -c 1 $host &> /dev/null
if [ $? -eq 0 ]
then
echo "$(date +%Y-%m-%d,%H:%M:%S) $host is up" >> /tmp/ip.txt
else
echo "$(date +%Y-%m-%d,%H:%M:%S) $host is down" >> /tmp/noping.txt
fi
}&
done
wait ## wait(参数) 使用 wait 是在等待上一批或上一个脚本执行完(即上一个的进程终止),再执行wait之后的命令。
echo "检测完毕,请到/tmp/ip.txt | /tmp/noping.txt 下查看记录"
2:通过文件批量ping网段内的主机
[root@lxy for]# cat pingipfor.sh
#!/bin/bash
for ip in `cat /root/ip.txt `
do
ping -c1 -W1 $ip &>/dev/null
if [ $? -eq 0 ]
then
echo "$ip is up"
else
echo "$ip is down"
fi
done