当前位置:   article > 正文

shell编程中 for while until循环的使用方法及案例

shell编程中 for while until循环的使用方法及案例

CSDN 成就一亿技术人!

作者主页:点击!

Shell编程专栏:点击!

CSDN 成就一亿技术人

————前言————

Shell脚本编程中,有几种常见的循环结构,包括for循环、while循环和until循环,总的来说,循环在Shell编程中扮演着至关重要的角色,它们使得自动化任务变得更加容易,提高了效率,并且可以处理各种各样的编程需求。

1.for循环

for循环允许你对一组元素(如数组中的元素、文件中的行、命令的输出等)进行迭代。

最常用的for循环

语法如下:

  1. for i in list
  2. do
  3. 执行语句
  4. done
  • i:循环变量,用于依次存储列表中的元素。
  • list:循环的元素列表,可以是由空格分隔的字符串,也可以是数组等。

实例如下:

利用for循环在/目录下创建csdni个文件夹

  1. #!/bin/bash
  2. for i in {1..10}
  3. do
  4. mkdir /csdn$i
  5. done

输出结果:

这是最基本的for循环语句

还可以用另外一种写法(等同于上边的写法)

  1. #!/bin/bash
  2. for i in $(seq 1 10)
  3. do
  4. mkdir /csdn$i
  5. done

实验创建用户

  1. #!/bin/bash
  2. #2024-3-7
  3. for i in {1..10}
  4. do
  5. useradd "csdn$i"
  6. echo "csdn$i创建成功"
  7. done

那么留给小伙伴们一个动手操作的实验 就是利用for循环来自动删除上边创建的用户

常用做法

人力部门给你发来一个名单现如今需要 创建对应的用户

如果名单有300个名字该如何创建呢 该不会是在人力部门报名完毕 之后跑到运维部来一个个创建用户吧

哈哈哈那样不得累坏

如下所示使用for几个命令搞定 这就是for循环的好处 当然使用其他循环也是可以实现的 下边举个例子供大家参考:
 

  1. #!/bin/bash
  2. [root@localhost ~] cat /etc/tables
  3. zhangsan
  4. lisi
  5. wangwu
  6. csdn
  7. csdn2
  8. xiaoming
  9. vim for.sh 编辑脚本
  10. for i in `cat /etc/tables` 写入循环
  11. do
  12. useradd "$i"
  13. echo "$i创建成功"
  14. done

C编程迭代循环

我们可以像 C 编程一样迭代循环。

  1. #!/bin/bash
  2. for ((i=1; i<=20; i++))
  3. do
  4. echo $i
  5. done

打印从5到1

  1. #!/bin/bash
  2. for ((i=5; i>=1; i--))
  3. do
  4. echo $i
  5. done

2.while循环

while循环又叫做死循环 

while循环是Shell脚本编程中一种常见的循环结构,它允许你根据条件重复执行一组命令,直到条件不再满足为止。

语法格式:

  1. 1 while 条件测试
  2. 2 do
  3. 3 执行命令
  4. 4 done
  • 执行命令:循环条件,可以是任何能够产生退出状态码(0或非0)的表达式。
  • 当条件满足时,执行循环体中的命令;每次循环结束后重新检查条件,直到条件不再满足为止。

实例如下:

  1. #!/bin/bash
  2. while :
  3. do
  4. let i++
  5. echo $i
  6. done

大家可以试一下这个我就不截图了。。。。。

通常循环都是结合判断语句来使用的

  1. #!/bin/bash
  2. while :
  3. do
  4. let i++
  5. if [ $i -eq 10 ];then
  6. echo "while实验结束!"
  7. break
  8. else
  9. echo $i
  10. fi
  11. done

3.until循环

until循环是Shell脚本编程中的另一种常见循环结构,与while循环类似,但它在条件为假时执行循环体,直到条件为真为止。

语法格式:

  1. until [ 条件判断]
  2. do
  3. # 执行语句
  4. done
  • 条件判断:循环条件,可以是任何能够产生退出状态码(0或非0)的表达式。在每次循环迭代开始时,都会对条件进行求值。如果条件为假(退出状态码非0),则执行循环体中的命令;如果条件为真(退出状态码为0),则退出循环。

  • dodonedo 标记了循环体的开始,done 标记了循环体的结束。循环体是在每次循环迭代时执行的一组命令。

实例如下:

  1. #!/bin/bash
  2. let i=0
  3. until [ $i -eq 5 ]
  4. do
  5. let i++
  6. sleep 0.1
  7. echo $i
  8. done

详解这个过程

  1. 初始时,i的值为0。
  2. 进入until循环,检查条件$i -eq 5是否为真,因为i的初始值是0,条件为假,因此执行循环体。
  3. 执行let i++递增i的值,此时i的值变为1。
  4. 执行echo $i打印出当前的i值,即1。
  5. 循环继续,进入下一次迭代,重复步骤2至4,直到i的值等于5,此时循环终止。

区别

  1. for循环

    • 用于对一组元素(如数组中的元素、文件中的行、命令的输出等)进行迭代。
    • 循环的次数在循环开始之前就确定了,通常用于已知循环次数的情况。
    • 语法形式为for variable in list,其中variable是循环变量,list是迭代的元素列表。
  2. while循环

    • 在循环开始之前,根据条件的真假来决定是否执行循环体。
    • 循环次数不一定是固定的,而是在运行时根据条件确定的。
    • 语法形式为while [ condition ],循环条件的结果必须是退出状态码为0或非0的表达式。
  3. until循环

    • 在循环开始之前,根据条件的真假来决定是否执行循环体,与while循环相反,它在条件为假时执行循环体,直到条件为真。
    • 循环次数同样不一定是固定的,而是在运行时根据条件确定的。
    • 语法形式为until [ condition ],循环条件的结果同样必须是退出状态码为0或非0的表达式。

总结:

  • for循环适用于已知循环次数的情况,可以用于迭代已知的元素列表。
  • while循环适用于根据条件决定循环执行的情况,循环次数不一定固定。
  • until循环也适用于根据条件决定循环执行的情况,与while循环不同的是它在条件为假时执行循环体。

选择合适的循环结构取决于具体的编程需求和循环条件。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/280822
推荐阅读
相关标签
  

闽ICP备14008679号