Advertisement

【shell】shell脚本实战-for循环

阅读量:

文章目录

        • 前言
    • for循环介绍

    • for循环的语法分析

    • for循环应用举例

      • 1. 从命令中取值
      • 2. 输出从1到10
      • 3. 批量用户处理
      • 4. ping命令最经典的脚本
      • 5. 批量重命名文件
    • 总结

前言

循环语句主要用于反复执行一条命令或一组命令直至满足特定条件时停止执行。在Shell编程中常用的几种循环结构包括while、until、for和select等。
我们今天将深入研究第一个起始性循环结构——for循环。
对于这种基本而常用的编程控制结构for而言其核心功能在于按照预先设定好的顺序依次执行相关操作。

for循环介绍

对于for循环来说,在实现方式上与while循环具有相似性。然而for循环则专为处理有限次数的循环设计。而while则适用于无限次数的重复操作。例如,在操作系统中常作为守护进程使用。

for循环的语法分析

1.第一种格式

复制代码
    for  变量  in  列表
    do
    	操作
    done
    
    
      
      
      
      
    
    代码解读

2,.第二种格式

复制代码
    for  ((初始化表达式; 条件表达式; 更新循环变量表达式))
    do
    	循环语句
    done
    
    
      
      
      
      
    
    代码解读
在这里插入图片描述
for循环应用举例
1. 从命令中取值
复制代码
    [root@ecs-c13b for]# cat passwd    ### 创建好的密码文件
    zhangsan 12345678
    lisi  123456789
    wuwang  123
    wangermazi 123456
    [root@ecs-c13b for]# cat for1.sh     ### 写好的脚本
    #!/bin/bash
    for i in `cat /root/for/passwd`
    do
    echo "$i"
    done
    
    [root@ecs-c13b for]# bash for1.sh   ### 执行脚本以及执行后的效果
    zhangsan
    12345678
    lisi
    123456789
    wuwang
    123
    wangermazi
    123456
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解读
2. 输出从1到10

方法一:

复制代码
    [root@ecs-c13b for]# cat for2.sh 
    #!/bin/bash 
    for i in $( seq 1 10)
    do 
       echo $i
    done
    
    
      
      
      
      
      
      
    
    代码解读

方法二:

复制代码
    [root@ecs-c13b for]# cat for3.sh 
    #!/bin/bash
    for (( i=1; i<=10; i++ ))
    do
    	echo $i
    done
    
    
      
      
      
      
      
      
    
    代码解读

方法三:

复制代码
    [root@ecs-c13b for]# cat for2.sh 
    #!/bin/bash 
    for i in {1..10}
    do 
       echo $i
    done
    
    
      
      
      
      
      
      
    
    代码解读
3. 批量用户处理

创建10个用户

复制代码
    [root@ecs-c13b for]# cat for3.sh 
    #!/bin/bash
    for (( i=1; i<=10; i++ ))
    do
    	echo "正在创建第$i个用户"
        useradd user$i
    done
    
    
      
      
      
      
      
      
      
    
    代码解读
4. ping命令最经典的脚本

判断ip的是否可用 使用ping命令进行判断

复制代码
    [root@ecs-c13b for]# cat for4.sh 
    #!/bin/bash
    
    for i in {1..100}
    do
     ping -c1 -i0.2 -w1 192.168.1.$i 
     if (($?==0));then
     	echo "192.168.1.$i is up" 
     else
        echo "192.168.1.$i is down" 
     fi
    
    done
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解读
5. 批量重命名文件
复制代码
    [root@ecs-c13b for]# cat for5.sh 
    #!/bin/ bash 
    
    #文件名: rename. sh 
    
    #用途: 重命名 .jpg 和 .png 文件
    
    count=1; 
    
    for img in ` find . -iname '*.png' -o -iname '*.jpg' -type f `     
               ## 使用find查找png和jpg的文件 -o 指定多个-iname选项
    do
    
    new=image-$count.${img##*.}    ##使用##和mv将查找到的文件重命名
    
    echo "Renaming $img to $new" 
    
    mv "$img" "$new"   
    
    let count++   ## 生成 image-1 image-2的格式
    
    done
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解读
总结

for循环是工作中用到的最多的工具了,一定要多加练习。

全部评论 (0)

还没有任何评论哟~