Linux:shell编程之循环语句与函数

一、循环与遍历

1.1 循环

  • 循环 (Loop) 是计算机编程中非常重要的一种结构,其主要目的是为了简化代码编写,提高代码的重复利用率,以及提高程序的效率。
  • 循环是一种控制流程的结构,用于重复执行一段代码,而遍历是一种数据操作的过程,用于访问并处理数据结构中的每个元素

1.2 遍历

  • 遍历是指对一组数据结构中的每个元素进行一次访问的过程
  • 在计算机编程中,常常需要对数组、列表、树等数据结构中的每个元素进行遍历,以便对它们进行操作或者输出。

二、循环语句

2.1 for循环语句

  • for语句的结构
  • 读取不同的变量值,用来逐个执行同一组命令
  • for语句的表现格式

在这里插入图片描述

for ((i=0;i<=5;i++)) #类c语言格式,i的值从0开始,每次自加1,最高不超过5
do                   #固定格式
  echo "$i"          #命令序列,屏幕中写出i的值
done                 #固定格式
for i in {1..5}      #一般格式,i的取值范围为1~5
do                   #固定格式
  echo "$i"          #命令序列,屏幕中写出i的值
done                 #固定格式
for ((;;))           #死循环
do                   #固定格式
  echo "$i"          #命令序列,屏幕中写出i的值
done                 #固定格式
  • 例子:
    在这里插入图片描述
  • 常用转义符
  • 从-e开始往后,必须要加-e才能实现
选项说明
-n表示不换行输出
-e输出转义字符,将转义后的内容输出到屏幕上
-e-b转义后相当于按退格键(backspace),但前提是"\b"后面存在字符;“\b"表示删除前一个字符,”\b\b"表示删除前两个字符
-e-c不换行输出,在"\c"后面不存在字符的情况下,作用相当于 echo -n 但是当"\c"后面仍然存在字符时,"\c"后面的字符将不会被输出
-e-n换行,被输出的字符从"\n"处开始另起一行
-e-f换行,但是换行后的新行的开头的位置连接着上一行的行尾
-e-v与“\f”相同
-e-t转义后表示插入tab,即横向制表符
-e-r光标移至行首,但不换行,相当于使用“\r”以后的字符覆盖“\r”之前等同长度的字符:但是当“\r”后面不存在任何字符时,“\r”前面的字符不会被覆盖
双反斜杠表示插入“\”本身

2.2 while循环语句

  • while语句的结构
  • 重复测试某个条件,只要条件成立则反复执行

在这里插入图片描述

  • 例子:

在这里插入图片描述

在这里插入图片描述

2.3 untli循环语句

  • until语句的机构
  • 条件成立即停止,否则一直循环
    在这里插入图片描述

三、跳出循环

  • 三种方式:continue、break、exit
  • continue:满足某个条件时,则跳过某次循环继续后面循环
  • 例子:
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • break:满足某个条件则停止循环
  • 例子:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • exit:满足条件结束脚本
  • 例子:

在这里插入图片描述

四、补充

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

五、shell函数

5.1 shell函数

  • shell函数的本质是一段可以重复使用的脚本代码
  • 使用函数可以避免代码重复
  • 函数可以将大的工程分割为若干小的功能模块,代码的可读性更强

5.2 shell函数定义

function 函数名 {
  命令序列
  }
  或者
  函数名(){
  命令序列
  }

在这里插入图片描述
在这里插入图片描述

5.3 返回函数的值

  • 1、在函数内用return退出函数并返回函数的值,在函数外用echo $?获取返回值,返回值的范围只能在0~255超过255则需要用值除以256取余

在这里插入图片描述

5.4 函数传参

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值