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 函数传参