“Shell“编程之循环语句与函数

一.Shell编程循环语句

循环语句

  • for循环语句
  • while循环语句
  • untli循环语句

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

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

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

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

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

二.for语句

1.for语句的结构

读取不同的变量值,用来逐个执行同一组命令(在已经范围之内的数据进行批量性的)
在这里插入图片描述
第一种格式:一般格式

for 变量名称(注意是名称不是变量$等) [ in 名称范围 ] (可以不写)
do
执行内容 若满足循环则做什么动作
done for循环结束标志

for i in {
    
    1..5}   //for循环5次,第一次i=1,第二次i=2以此类推直到i=5
do
 echo "$i"   //循环动作,每次输出$i 
done        //for语句结束标志

第二种格式:类C语言格式

for (( 表达式1 ;表达式2;表达式3 ))
do
执行内容 若满足循环则做什么动作
done for循环结束标志
表达式1:定义变量并赋值
表达式2:决定是否循环
表达式3:决定循环变量如何改变,决定循环什么时候结束

for ((i=0;i<=5;i++))    //定义for循环i变量初始值为0,循环条件i小于等于5,每循环一次i自加1
do
  echo "$i"   //for循环每循环一次执行一次输出$i
done       //for语句结束标志

第三种格式:死循环格式

for ((;;))

2.for语何应用示例

示例

数字累加脚本(1-100)

需求:编写脚本实现计算从1加到100的值
思路:
①累加需要用到循环,已知循环次数时使用for循环
②也可以使用while循环达到累加条件时结束循环

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

常用转义符:

echo -n 表示不换行输出
echo -e 输出转义字符,将转义后的内容输出到屏幕上 echo -ne
只有加了-e才能执行下面的转义符

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

三.跳出循环

1.continue跳出循环

  • 表示满足continue条件时跳出循环,但是不影响后续循环执行
  • 它的作用是在循环内部跳过本次循环并继续下一次循环

举例

在这里插入图片描述

在这里插入图片描述
2.break跳出循环

  • 在某个循环中遇到break直接结束此次循环,但是不影响外边嵌套的循环。
  • break [数字] 结束数字中的几次循环,若为2则结束自己所在循环和外边嵌套的一层循环,
    若为3则结束自己所在循环和外边嵌套的2层循环
  • break 命令并不控制循环次数,它是用于控制循环流程的。
    当 break 命令执行时,它会立即跳出当前的循环并继续执行循环后面的代码。

举例:

在这里插入图片描述

在这里插入图片描述

四.while循环

while循环满足条件执行,不满足不执行
用于不知道循环次数,需要主动结束循环或达到条件结束循环。
在这里插入图片描述

基本格式:
while [ 判断条件]
do
执行动作 while循环执行动作
done while循环结束标志 while true

举例:

在这里插入图片描述

在这里插入图片描述

五.until循环

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

until [ 条件测试操作 ]
do
判断式/命令序列
done

i=0
sum=0
until [ $i -gt 10 ]
do
echo $i
let i++
sum=$(($sum+$i))
done

示例1:批量建立用户
在这里插入图片描述
示例2:批量删除用户

在这里插入图片描述
示例3:猜价格游戏

在这里插入图片描述
示例4:用户输入密码,脚本判断密码是否正确,正确密码为123456,输入正确提示正确信息,连续输错3次则报警

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Wanghwei17/article/details/130504171