SHELL 流程控制之循环

一、for循环语句

for循环通常用于遍历整个对象或者数字列表

1. 带列表的for循环
  • 语法
for 临时变量 in 列表                 
do
	statement1
	···
	statementN
done
  • 列表
    • 可以直接列出元素
      for i in 1 2 3 4 5 6
    • 可以使用大括号
      for i in {1…2}
    • 可以是执行的结果
      for i in $(seq 10)
    • 也可以是位置参数变量:$*(整体) $@(个体)
  • for循环中可以嵌套循环,也可以有 if-else 来进行判断
  • 小练习:
    计算1-100奇数的合
    在这里插入图片描述
2. 不带列表的for循环

在某些特殊情况下,for循环的条件列表可以完全省略,称为不带列表的for循环语句。如果没有为for循环提供条件列表,Shell将从命令行获取条件列表,也就是缺省的列表会从脚本传参获取

  • 语法
for 临时变量
do
	statement1
	statement2
	...
done
3. 类c语言风格的for循环语句
  • 语法
    • 如:for ((i=1;i<11;i++))
      intialize:初始化,赋予 i 起始值1
      condition:判定条件,i<11 -->每次循环判定条件,条件成立,就执行循环中的语句
      operation:操作,每次循环结束之后的操作,一般都是自增或者自减的操作
for((intialize;condition;operation ))
do
	statement1
	···
	statementN
done
  • 注意:类c风格的循环,不会自动取下一个元素,所以需要加上自加或自减的操作
  • 小练习
    打印1-10的奇数【不止使用expr的计算方式】
    在这里插入图片描述

二、while循环语句

  • while循环结构,可以使得用户重复执行一系列的操作,直到某个条件的发生。
  • 语法
    • 通常情况下,expression代表一个测试表达式,当expression的值为0时才执行循环体中的语句,每次执行到done时就会重新判断while条件表达式是否成立,当expression的值为非0值时,将退出循环体
while expression(条件判断)
do
	statement1
	statement2
	...
done
  • 注意:while循环只做条件判断,没有自加自减等操作
  • 小练习:
    打印1-10奇数:
    注意提前定义初始化变量以及变量自加的操作
    在这里插入图片描述

三、until循环语句

  • until语句的作用是将循环体重复执行,直到某个条件成立为止。
  • 与while不同的是,while循环是条件成立一直执行,不成立停止执行;until是不成立一直执行直到条件成立
  • 语法
until expression
do
	statement1
	statement2
	...
done
  • 小练习
    打印1-10数字
    在这里插入图片描述

四、select循环语句

  • 主要功能是创建菜单,在执行带有select循环语句脚本时,输出会按照数字顺序的列表显示一个菜单,并显示提示符(默认是#?),同时等待用户输入数字选择
  • 例:
    角色人数选择

五、利用break和continue语句控制循环

  • break:终止循环
  • continue:结束本次循环,直接跳到下一次循环
  • 小练习:
    • echo $i 位置不同,结果也不同

六、作业练习

  • 嵌套循环实现99乘法表(for和while都可以)
    选做:格式对齐,以及使用单层循环9
    9
  • 判定一个成绩:
    85-100 -> A
    70-84 -> B
    60-69 -> C
    0-59 ->D
    程序的边界问题:>100, <0
    必须输入的是数字:0-100
    在这里插入图片描述
  • 循环创建用户:用户名为user01-user20
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值