for循环详解

1133人浏览 / 0人评论

for循环

1、for格式

for 变量名 in 取值列表
  do
  	命令
done

2、基础for语句

[root@777 ~]# cat test.sh
#!/bin/bash
for i in `seq 10`
  do
    echo $i
done

3、for指定分隔符,默认是已空格为分割符。

#!/bin/bash
OLD_IFS=$IFS
IFS=":"
for i in $(head -1 /etc/passwd)
  do
    echo $i
done
IFS=$OLD_IFS

4、for自增

[root@777 ~]# cat test.sh 
#!/bin/bash
for ((i=1;i<=5;i++));do
	echo $i
done

5、累加1-100

[root@777 ~]# cat test.sh 
#!/bin/bash
num=0
for ((i=1;i<=100;i++))
  do
	num=`expr $num + $i`
done
echo $num

方法2

#!/bin/bash
sum=0
for i in `seq 100`
  do
    sum=`expr $sum + $i`
    let i++
done
echo $sum

6、批量检查主机存活性

[root@777 ~]# cat test.sh 
#!/bin/bash
for ip in 192.168.1.{1..254}; do
 if ping -c 1 -w 1 $ip >/dev/null; then
 echo "$ip OK."
 else
 echo "$ip NO!"
 fi
done

7、检查多个域名是否可以访问

#!/bin/bash
URL="www.baidu.com www.sina.com www.jd.com"
for url in $URL; do
 HTTP_CODE=$(curl -o /dev/null -s -w %{http_code} http://$url)
 if [ $HTTP_CODE -eq 200 -o $HTTP_CODE -eq 301 ]; then
 echo "$url OK."
 else
 echo "$url NO!"
 fi
done

全部评论