当前位置:   article > 正文

细讲shell中的循环语句--for、while、until_shell forsi循环

shell forsi循环

目录

一:何为循环

1.循环概述

2.使用循环的好处

二:for循环语句

1.for语句的用法

​2. 语法结构

(1)一般格式

 (2)类C语言格式

(3)死循环

 3.事例

​4.常用转义符

​5.制作九九乘法表

三:while循环

1.while语句

 2.while语句事例

 四:until循环

1.until语句

2.until语句事例

五:跳出循环

 1.continue跳出循环

2. coontinue 2  

 3.break跳出循环

 4.break 2

 总结:编写脚本的思路


一:何为循环

1.循环概述

循环是一种控制流程的结构,用于重复执行一段代码。

遍历是一种数据操作的过程,用于访间并处理数据结构中的每个元素。

在某些情况下,循环和遍历可以结合使用,以便在循环中遍历数据结构并对其进行操作。

循环(Loop)    是计算机编程中非常重要的一种结构,其主要目的是为了简化代码编写。

提高代码的重复利用率,以及提高程序的效率。

2.使用循环的好处

重复执行代码:通过使用循环,可以在程序中重复执行一段代码,从而避免代码的重复编写, 减少程序代码量,提高程序的可读性和可维护性。

简化程序逻辑:使用循环可以使程序逻辑更加简洁明了,提高程序的可读性和可理解性。降低代码出错的可能性。

 提高代码的重复利用率:通过将重复的代码封装在循环结构中,可以提高代码的重复利用率,减少代码冗余。

提高程序的效率:循环可以让程序自动化地执行重复任务,从而减少人工干预的次数,提高程序的效率和性能。

二:for循环语句

1.for语句的用法

读取不同的变量值,用来逐个执行同一组命令

for循环经常使用在已经zhidao要进行多少次循环的场景

  1. 格式:
  2. for 变量名 in 取值列表
  3. do
  4. 命令序列
  5. done

2. 语法结构

(1)一般格式

 (2)类C语言格式

  1. for ((expr1;expr2;expr3))
  2. do
  3. echo
  4. done

(3)死循环

for ((;;))

 3.事例

(1)批量创建用户,用户名存放在users.txt文件中,每一个初始密码为123456。

 (2)根据ip地址检测主机状态,IP地址存放在ipadds.txt文件中,每行一个,使用ping命令检测各主机的联通性,ping通的ip地址放到/opt/hosts文件中

 4.常用转义符

  1. echo -n 表示不换行输出
  2. echo -e 输出转义字符,将转义后的内容输出到屏幕上
  3. 常用的转义字符如下:
  4. \b 转义后相当于按退格键(backspace),但前提是"\b"后面存在字符;"\b"表示删除前一个字符,"\b\b"表示删除前两个字符。
  5. \c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于 echo -n; 但是当"\c"后面仍然存在字符时,"\c"后面的字符将不会被输出。
  6. \n 换行,被输出的字符从"\n"处开始另起一行。
  7. \f 换行,但是换行后的新行的开头位置连接着上一行的行尾;
  8. \v 与\f相同;
  9. \t 转以后表示插入tab,即横向制表符;
  10. \r 光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时,"\r"前面的字符不会被覆盖
  11. \\ 表示插入"\"本身;

5.制作九九乘法表

 (1)制作长方形图表

 (2)制作等腰三角形图表

(3)制作九九乘法表

脚本解释:for i in {1..9}设置的是循环9次,

j<=i 表示的是在每次$i循环时$j小于等于$i,大于$i的$j不显示出来

j++是一个后缀自增运算符,表示将变量j的值加1,并返回原始值。

 (4)制作倒的九九乘法表

 三:while循环

1.while语句

while循环满足条件执行,不满足不执行

用于不知道循环次数,需要主动结束循环或达到条件结束循环。

  1. while [ 判断条件]
  2. do
  3. 执行动作 while循环执行动作
  4. done while循环结束标志

 2.while语句事例

(1)输出0-5

 

(2)批量添加用户

 (3)猜数字

 (4)计算机

(5)商场购物并打折

  1. #!/bin/bash
  2. i=1
  3. sum=0
  4. while [ $i -eq 1 ]
  5. do
  6. echo "要不要进第$i家商店看看呢"
  7. read -p "是否进入看看(yes/no)" doing
  8. while [ $doing = "yes" ]
  9. do
  10. echo "1:衣服 ¥200"
  11. echo "2:鞋子 ¥150"
  12. echo "3:帽子 ¥50"
  13. echo "4:裤子 ¥165"
  14. read -p "请选择需要购买的商品序列号:" num
  15. case $num in
  16. 1)
  17. echo "衣服购买成功!"
  18. expr $[ sum+=200 ] &> /dev/null
  19. ;;
  20. 2)
  21. echo "鞋子购买成功!"
  22. expr $[ sum+=150 ] &> /dev/null
  23. ;;
  24. 3)
  25. echo "帽子购买成功!"
  26. expr $[ sum+=50 ] &> /dev/null
  27. ;;
  28. *)
  29. echo "裤子购买成功!"
  30. expr $[ sum+=165 ] &> /dev/null
  31. ;;
  32. esac
  33. read -p "是否继续进行购买(yes/no)" doing
  34. done
  35. let i++
  36. if [ $doing = "no" ]
  37. then continue
  38. fi
  39. done
  40. echo "今天您的购物总价为:$sum"
  41. if [ $sum -ge 150 ] && [ $sum -lt 200 ];then
  42. let sum=sum-50
  43. elif [ $sum -ge 200 ] && [ $sum -le 400 ];then
  44. let sum=$sum-100
  45. fi
  46. echo "打折之后的价格为:$sum"

 四:until循环

1.until语句

通常用于当判断条件不成立时才进行循环,一旦判断条件成立,就终止循环,比如等待某个进程退出、等待某个文件被创建等等。

  1. 格式:
  2. until 条件测试操作
  3. do
  4. 命令序列
  5. done

2.until语句事例

计算0-50的总值

  1. #!/bin/bash
  2. #功能10-50的和是多少?
  3. #i=0;s=0
  4. #until [ $i -eq 51 ]
  5. #do
  6. # let s+=i
  7. # let i++
  8. #done
  9. #echo $s

  

五:跳出循环

 1.continue跳出循环

 表示满足continue条件是跳出循环,但是不影响后续循环执行

它的作用是在循环内部跳过本次循环并继续下一次循环

2. coontinue 2  

continue 2会跳过当前循环和两层外层循环的迭代

 3.break跳出循环

在循环内部,当执行到 break 命令时,会立即跳出当前的循环,停止循环执行,然后继续执行下一条指令。
可以使用 break 命令来提前终止循环,例如当达到特定条件时或者已经执行了足够的次数。

 4.break 2

break 2 会跳出当前循环和外层循环的迭代

 总结:编写脚本的思路

  1. 1.首先明确脚本的功能
  2. 1.1案例:需求是创建用户并测试用户20
  3. ->那肯定要用循环forwhile
  4. ->知道需求含义来定义脚本的功能
  5. 2.编写脚本时会使用到哪些命令?
  6. 2.1如上面的需求:就要使用useradd passwd let echo for while 等命令
  7. 3.把变化的数据使用变量表示【记得要先定义哦】
  8. 3.1固定长的定义变量、经常调用的参数可设变量
  9. 3.2变化的定义变量
  10. 4.选择适合的流程控制
  11. 4.1【循环语句、双分支、多分支、case等一些控制语句 】

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

闽ICP备14008679号