shell script 之五:循环控制 for

for循环

基本语法:

for var in item1 item2 ... itemN do command1 command2 ... commandN done

 

例1:计算1到100数字的和

#!/bin/sh
#the sum  1-100

sum=0
for ((i=1;i<=100;i++));
do
  let sum=$sum+$i;  #可以写 sum=$(( $sum + $i )) 
done
  echo $sum

sh sum100.sh 
5050

  

例2:获取网段内在线主机ip,并保存到ip.txt

#!/bin/bash
#find alive_ip >ip.txt
#by sunny 2013

net="10.0.0."  #定义网段
for ((i=1;i<=254;i++))
do
  ping -c1 $net$i >/dev/null 2>&1  #-c指定次数,结果不输出
  if [ $? -eq 0 ];then
    echo -e "\033[32m $net$i is alive \033[0m"
    echo "$net$i  is  ok" >>ip.txt
  else
    echo "net$i is none"
  fi
done

 

运行sh getaliveip.sh 

~ sh getaliveip.sh
10.0.0.1 is alive
10.0.0.2 is none
10.0.0.3 is none
10.0.0.4 is none
10.0.0.5 is none
10.0.0.6 is none
10.0.0.7 is none
10.0.0.8 is alive
10.0.0.9 is none
10.0.0.10 is none

 

 例3:可以直接利用反引号` `  或者$()给变量赋值。 

for i in `seq -f"%03g" 5 8`;   # "%03g" 指定seq输出格式,3标识位数,0标识用0填充不足部分
do echo $i;  

done   
005
006
007
008

 使用$(),列出/etc下rc开头的文件

for i in $(ls /etc/);do echo $i|grep ^rc; done

  

例4:for in {v1,v2,v3}

for i in {0..3};do echo $i; done
0
1
2
3

for i in v1 v2 v3;do echo $i; done
v1
v2
v3

 

例5:利用seq生成一些网页批量下载

for i in `seq 1 4`;  do wget -c "http://nginx.org/download/nginx-1.10.$i.zip";  done

也可以先用seq生成网页

for i in `seq -f "http://nginx.org/download/nginx-1.10.%g.zip"  1 4`; do wget -c $i; done
 以上同
for i in $(seq -f "http://nginx.org/download/nginx-1.10.%g.zip"  1 4); do wget -c $i; done

  

 

 

终止循环:break主要用于特定情况下跳出循环,防止死循环。while循环也一样。

#!/bin/bash
#by sunny

for((i=10;i<100;i++))
do
  if [ $i -gt 15 ];then  # i 大于15退出循环
    break
  fi
  echo "the sum is $i"
done

# sh break.sh
the sum is 10
the sum is 11
the sum is 12
the sum is 13
the sum is 14
the sum is 15

 

转载于:https://www.cnblogs.com/sunny18/p/8618445.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值