循环语句(for、while、until)及函数表达

目录

目录

一、for循环语句

幸运会员

数字炸弹游戏Ⅰ

二、while循环语句

列出1-100之间能被3整除的数

三、until循环语句

计算1-60的值

四、循环嵌套

进入商店购物

五 shell 函数

1、shell函数定义

2、函数基本格式

3、函数返回值return

4、函数使用实例

5、调用函数安装本地yum源

 6、函数的作用范围

 7、函数的参数

 8、函数的递归



一、for循环语句

使用 for 循环语句时,需要指定一个变量及可能的取值列表,针对每一个不同的取值重复执行相同的命令序列,直到变量值用完退出循环。在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他命令相同。

首先将列表中的第1个取值赋给变量,并执行 do···done 循环体中的命令序列

然后将列表中的第2个取值赋给变量,并执行循环体中的命令序列……

以此类推,直到列表中的所有取值用完,最后将跳至 done 语句,表示结束循环

for循环语句的语句结构

for   变量名   in   $LIST  (1、为变量准备赋值的元素 2、决定循环次数)
do
    命令系列
done

或者
for ((i=*;i<=*;1++))    (定义变量起始值;定义循环结束条件;控制循环次数)
do
    命令序列
done

 列出奇偶数

 

计算10以内的奇数和

检查ip存活状态

 

 

幸运会员

用户列表

 

数字炸弹游戏Ⅰ

要求在1-100内定义一个数字,与用户交互,要求,每次提醒用户,数字猜大了还是猜小了,直到猜中为止,最后统计猜的次数
PS:每次猜的数字不允许重复(脚本自身检测)

脚本内容

 

二、while循环语句


     for循环语句非常适用于列表对象无规律,且列表来源已固定(如某个列表文件)的场合。而对于要求控制循环次数、操作对象按数字顺序编号、按特定条件执行重复操作等情况,则更适合使用另一种循环—while语句。

     使用 while循环语句时,可以根据特定的条件反复执行一个命令序列,直到该条件不再满足时为止。但是在脚本应用中,应该避免出现死循环的情况,否则后边的命令操作将无法执行。

        循环体内的命令序列中应包括修改测试条件的语句,以便在适当的时候使测试条件不再成立,从而结束循环。

while语句语法结构:

        while 条件测试操作
        do
            命令序列
        done

执行流程:

        首先判断 while 后的条件测试操作结果,如果条件成立,则执行 do···done 循环体中的命令序列
        返回 while 后再次判断条件测试结果,如果条件仍然成立,则继续执行循环体
        再次返回到 while 后,判断条件测试结果…如此循环
        直到 while 后的条件测试结果不再成立为止,最后跳转到 done 语句,表示结束循环

列出1-100之间能被3整除的数


三、until循环语句

 重复测试某个条件,只要条件不成立则反复执行

until语句语法结构:

        until 条件测试操作
        do
            命令序列
        done

计算1-60的值

 

四、循环嵌套

  1. 一个==循环体==内又包含另一个完整的循环结构,称为循环的嵌套。
  2. 每次外部循环都会==触发==内部循环,直至内部循环完成,才接着执行下一次的外部循环。
  3. for循环、while循环和until循环可以相互嵌套。

进入商店购物

 

 99乘法表

 

 打印倒三角:

 

五 shell 函数

1、shell函数定义

将命令序列按格式写在一起

可方便重复使用命令序列

2、函数基本格式

[function] 函数名() {
  命令序列
[return x]                           #使用return或exit可以显示的结束函数 
}

或者

#也可以省略掉[function],它表示该函数的功能

函数名() {                            #函数名后面()是没有内容的
  命令序列                            #我们执行的命令内容放在{}里面
}

函数定义完之后并不会自动执行,需要调用才行,好处在于可以写一段功能代码作为函数,有需要就直接调用。定义的时候哪怕出现语法错误也没关系,不调用就不会报错,当然我们写函数最终目的还是为了调用,为了实现某个功能块。

3、函数返回值return

表示退出函数并返回一个退出值,脚本中可以用$?变量显示该值

使用原则:

函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码

退出状态码必须是0~255,超出时值将为256取余(例如:返回码为300,那么将300%256)

4、函数使用实例

①函数调用

遇到重名时只执行最后一个

 

两个函数一起执行

 

5、调用函数安装本地yum源

 6、函数的作用范围

     在Shell 脚本中函数的执行并不会开启一个新的子Shell,而是仅在当前定义的Shell 环境中有效。如果Shell脚本中的变量没有经过特殊设定,默认在整个脚本中都是有效的。在编写脚本时,有时需要将变量的值限定在函数内部,可以通过内置命令local 来实现。函数内部变量的使用,可以避免函数内外同时出现同名变量对脚本结果的影响

        函数内部使用local 命令设置变量a,其作用是将变量a限定在函数内部。函数外部同样定义了变量a,内部变量a和全局变量a互不影响。脚本执行时先调用了函数,函数内部变量a为5,所以输出结果是1。调用完函数之后,给变量a赋值为2,再打印外部变量a,所以又输出2.

 7、函数的参数

         参数的用法

               函数名称 参数1 参数2 参数3...

          参数的表示方法
                $1 $2 $3 ......${10} ${11}......

1、

 2.用户输入两个参数

 

 8、函数的递归

Shell 也可以实现递归函数,就是可以调用自己本身的函数。在Linux系统上编写Shell 脚本的时候,经常需要递归遍历系统的木,列出目录下的文件和河路,逐层递归列出,并对这些层级关系进行展示。

 

列出目录内文件列表,目录用蓝色表示,文件显示层级关系

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值