shell循环控制语句之for
语法
for 变量名 in 取值列表;
do
命令
done
示例
#!/bin/bash
data='a b c d'
IFS=,
for i in $data;do
echo $i
done
for循环高并发执行脚本
for循环ping脚本,执行效果很慢,因为会一个一个IP去ping
#!/usr/bin/env bash
#export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
for i in {1..254}
do
ping -c1 10.0.0.$i &>/dev/null
if [ $? -eq 0 ];then
echo "10.0.0.$i" >> /root/ping.txt
fi
done
高并发执行
#!/usr/bin/env bash
#export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
for i in {1..254}
do
{
ping -c1 10.0.0.$i &>/dev/null
if [ $? -eq 0 ];then
echo "10.0.0.$i" >> /root/ping.txt
fi
}&
done
wait
echo -e"online ip is: \n`cat /root/ping.txt`"
waite 等待并发全部执行完成才往后执行
for循环高并发
在要执行的命令外加上 {命令}&
即在do跟done之间的命令加 {}&