流程控制-for循环语句

一、循环语句-for
1.1、for介绍
脚本在执行任务的时候,总会遇到需要循环执行的时候,比如说我们需要脚本每隔五分钟执行一次ping的操作,除了计划任务,我们还可以使用脚本来完成,那么我们就用到了循环语句。

1.2、for基本语法 for条件循环
列表for循环:用于将一组命令执行已知的次数,下面给出了for循环语句的基本格式:
for variable_name in {list}
     do
          command 
          command
          …
     done
或者
for variable in a b c
     do
         command
         command
     done
1.3、for条件应用
for条件不同的赋值方式
a、赋值来自一个范围

for var in {1..10}
    do 
            echo $var
done
b、直接赋值

for var in 1 2 3 4 5
    do 
            echo $var
done
c、赋值来自命令

for var in `seq  10`
    do 
            echo $var
done
体验不同的方式

赋值来自一个范围
for var in $(seq 10)
    do 
            echo $var
done

for var in {0..10..2}
    do 
            echo $var
done


for var in {10..1}
    do 
            echo $var
done


for var in {10..1..-2}
    do 
            echo $var
done


for var in `seq 10 -2 1`
    do 
            echo $var
done

不带列表循环
不带列表的for循环执行时由用户指定参数和参数的个数,下面给出了不带列表的for循环的基本格式:

for variable
    do
        command 
        command
        …
   done
语法结构举例说明:

#!/bin/bash
for var
do
echo $var
done

echo "脚本后面有$#个参数"

1.4、for C格式语法
类C风格的for循环
for(( expr1;expr2;expr3 ))
    do
        command
        command
        …
    done
for (( i=1;i<=5;i++))  
    do
        echo $i
    done


expr1:定义变量并赋初值   变量初始值
expr2:决定是否进行循环(条件)  变量的条件
expr3:决定循环变量如何改变,决定循环什么时候退出 自增或自减运算

多变量用法
for ((A=1,B=10;A<10,B>1;A++,B--))
语法结构举例说明:

for ((i=1;i<=5;i++));do echo $i;done
for ((i=1;i<=10;i+=2));do echo $i;done
for ((i=2;i<=10;i+=2));do echo $i;done

1.5、练习案例
jobs: 写一个扫描软件,扫描本地网络中存活的机器

案例需求:
判断本地网络中哪些IP被使用

案例分析:
采用ping的方式判断IP是否被占用

 a、能ping通说明占用
 b、不能ping通说明未被占用
b、命令

ping -c1 IP
算法:
1、ping ip
2、分析ping结果
3、输出结果

#!/bin/bash

#Author: www.zutuanxue.com
#Created Time: 
#Release: 
#Description: 扫描本地网络中存活的主机,以C类地址为例


#variables
netsub="192.168.1."

#main
#1、循环ping IP地址,能ping通说明IP存在。
for ip in `seq 1 254`
  do
  (  
     #2、判断Ping结果
     if ping -c1 $netsub$ip &>/dev/null;then
          #3、输出结果
          echo "$netsub$ip is open"
     else
          echo "$netsub$ip is close"
     fi
   ) & 
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_42421584

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值