15-流程控制-for循环语句-《shell脚本》

admin 2025-11-06 14:40:30 系统网络 来源:ZONE.CI 全球网 0 阅读模式
  • 一、循环语句-for
    • 1.1、for介绍
    • 1.2、for基本语法 for条件循环
    • 1.3、for条件应用
    • 1.4、for C格式语法
  • 1.5、练习案例

    工作中总是有很多工作需要重复性来完成,比如每天都需要执行一次备份、每天都需要分析一次业务的access.log日志,每分钟都需要监测一次主机的状态等等工作,这些重复性的工作我们一般都是使用脚本来完成,对于不需要频繁执行的任务,可以结合计划任务➕脚本完成,但是系统的计划任务只能精确到分,不能满足更频繁的重复工作。这个时候我们除了依赖计划任务之外还有很多选择,比如脚本中的循环语句。循环的优点

    • 1)节省内存 10M脚本 1M脚本 哪个更剩内存 完成同一个任务
    • 2)结构更清晰
    • 3)节省开发时间成本

      一、循环语句-for

      1.1、for介绍

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

      1.2、for基本语法 for条件循环

    • 列表for循环:用于将一组命令执行已知的次数,下面给出了for循环语句的基本格式:

      1. for variable_name in {list}
      2. do
      3. command
      4. command
      5. done
      6. 或者
      7. for variable in a b c
      8. do
      9. command
      10. command
      11. done

      1.3、for条件应用

      for条件不同的赋值方式a、赋值来自一个范围

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

      b、直接赋值

      1. for var in 1 2 3 4 5
      2. do
      3. echo $var
      4. done

      c、赋值来自命令

      1. for var in `seq 10`
      2. do
      3. echo $var
      4. done

      体验不同的方式 ```bash 赋值来自一个范围 for var in $(seq 10) do

      1. 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

    1. - 不带列表循环
    2. 不带列表的for循环执行时由**用户指定参数和参数的个数**,下面给出了不带列表的for循环的基本格式:
    3. ```bash
    4. for variable
    5. do
    6. command
    7. command
    8. done

    语法结构举例说明:

    1. #!/bin/bash
    2. for var
    3. do
    4. echo $var
    5. done
    6. echo "脚本后面有$#个参数"

    1.4、for C格式语法

    • 类C风格的for循环 ```bash for(( expr1;expr2;expr3 )) do
      1. command
      2. command
      done for (( i=1;i<=5;i++)) do
      1. echo $i
      done

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

    多变量用法 for ((A=1,B=10;A<10,B>1;A++,B—))

    1. **语法结构举例说明:**
    2. ```bash
    3. for ((i=1;i<=5;i++));do echo $i;done
    4. for ((i=1;i<=10;i+=2));do echo $i;done
    5. for ((i=2;i<=10;i+=2));do echo $i;done

    1.5、练习案例

    jobs: 写一个扫描软件,扫描本地网络中存活的机器案例需求:判断本地网络中哪些IP被使用案例分析:采用ping的方式判断IP是否被占用

    1. a、能ping通说明占用
    2. b、不能ping通说明未被占用

    b、命令

    1. ping -c1 IP

    算法:1、ping ip2、分析ping结果3、输出结果

    1. #!/bin/bash
    2. #
    3. #Author: www.zutuanxue.com
    4. #Created Time:
    5. #Release:
    6. #Description: 扫描本地网络中存活的主机,以C类地址为例
    7. #variables
    8. netsub="192.168.1."
    9. #main
    10. #1、循环ping IP地址,能ping通说明IP存在。
    11. for ip in `seq 1 254`
    12. do
    13. (
    14. #2、判断Ping结果
    15. if ping -c1 $netsub$ip &>/dev/null;then
    16. #3、输出结果
    17. echo "$netsub$ip is open"
    18. else
    19. echo "$netsub$ip is close"
    20. fi
    21. ) &
    22. done
    01-shell脚本介绍-《shell脚本》 系统网络

    01-shell脚本介绍-《shell脚本》

    一、shell脚本是什么二、为什么要学shell,而不是其他计算机语言三、学习这门课程的优势四、学了能干什么五、学习什么内容六、学习的技巧七、成长路径八、学习环
    评论:0   参与:  23