Shell编程-break

news2024/11/29 8:50:49

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们前面学习了那么多命令,以及涉及到部分逻辑判断的问题。从简单来说,他就是Shell编程,只有由于命令比较单一,只能实现比较简单的功能。如果我们把多个操作都放到一起去,并添加更复杂的逻辑在里面,他就是Shell编程。所以我们主要从以下几个方面讲解Shell编程:

Shell编程-什么是shell

Shell编程-变量

Shell编程-数据类型

Shell编程-逻辑判断

Shell编程-if判断

Shell编程-if和else

Shell编程-while循环

Shell编程-for循环

Shell编程-case

Shell编程-break(本章节)

Shell编程-continue

Shell编程--函数

Shell编程-案例(一)

Shell编程-案例(二)

Shell编程-小结

前面我们说过的无论是while循环还是for循环,它会在达到预设条件以后才会退出循环,而我们有些需求是并不需要全部执行完成所有逻辑,而是在达到一定条件就会自动退出。

在Shell脚本中,break 是一个关键字,用于终止当前所在的循环(forwhile 或 until 循环)。它允许脚本在满足某个条件时提前退出循环,而不必等待循环条件自然结束。

使用方法​​​​​​

while condition
do
    # 循环体代码
    if [ some_condition ]; then
        break
    fi
done

或者:

for var in list
do
    # 循环体代码
    if [ some_condition ]; then
        break
    fi
done
  • break 可以在循环体中的任何位置使用。

  • 当 break 被执行时,它会立即终止最近的循环(whilefor 或 until 循环),并跳出循环体,继续执行循环后的代码。

示例

在 while 循环中使用 break

#!/bin/bash

# 使用 while 循环输出数字,但遇到 5 就停止
number=1
while [ $number -le 10 ]
do
    echo "Number: $number"
    if [ $number -eq 5 ]; then
        break
    fi
    number=$((number + 1))
done

echo "Outside the loop."

在这个示例中,while 循环会输出数字 1 到 5,当 number 的值等于 5 时,执行 break 终止循环,并输出 "Outside the loop."。

在 for 循环中使用 break​​​​​​​

#!/bin/bash

# 使用 for 循环输出数组元素,但遇到特定元素时就停止
fruits=("apple" "banana" "cherry" "date")

for fruit in "${fruits[@]}"
do
    echo "Fruit: $fruit"
    if [ "$fruit" = "cherry" ]; then
        break
    fi
done

echo "Outside the loop."

在这个例子中,for 循环会输出数组 fruits 的元素,但当 fruit 的值等于 "cherry" 时,执行 break 终止循环,并输出 "Outside the loop."。

总结

1.break只会退出当前循环,但是并不会退出整个程序,比如代码里面的echo语句还是会执行的。

2.和break相对应的是continue,它只是退出本次循环。

3.有的老师用一个巡楼来说明这个break。比如有8个房间,按照正常的循环,我们从1-1 开始到1-8结束。如果我们在1-6房间里面放置了一个break,当巡楼到1-6房间以后,它就会触发break,后面的1-7和1-8房间就不会巡楼了。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2218684.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux与Windows文件共享:Samba的详细配置(Ubuntu)

序 什么是samba?Samba是一种在Linux和UNIX系统上实现SMB协议的免费软件,用于局域网内不同计算机之间的文件和打印机共享服务。今天我们将通过配置samba来进行Windows与linux系统之间的文件共享。 配置 此次配置,我们所使用的Linux发行版版本信…

萤石云服务支持云端视频AI自动剪辑生成

萤石视频云存储及媒体处理服务是围绕IoT设备云端存储场景下的音视频采集、媒体管理、视频剪辑和分发能力的一站式、专业云服务,并可面向广大开发者提供复杂设备存储场景下的完整技术方案。目前该服务新增了视频剪辑功能,支持将视频片段在云端进行裁剪并拼…

WordPress+Nginx 安装教程

WordPress 是一个开源的网站建设工具,可以用它来“快速”搭建个人博客,官网等等。它本身是用 php 开发的,本身部署不复杂,主要是需要一些配套的东西才能跑起来,网上的一些教程也是写的不清不楚,本文针对非 …

LeetCode :LCR 173. 点名

​ ​ 🔥个人主页:guoguoqiang. 🔥专栏:leetcode刷题 ​ ​ LeetCode :LCR 173. 点名 这个题就是缺失的数字,我们可以通过三种方式来解决这个问题。 1.可以通过位异或的方式来找到这个数(相同的数异或为…

枸杞常见病虫害识别数据集(猫脸码客 第220期)

枸杞常见病虫害识别数据集 枸杞,作为一种在中医药学和食品保健领域都备受瞩目的植物,其生长过程中常常会受到各种病虫害的侵扰。这些病虫害不仅影响枸杞的产量,还对其品质产生不良影响。因此,对枸杞病虫害的研究和防治显得尤为重…

SpringBoot使用RestTemplate实现发送HTTP请求

Java 实现发送 HTTP 请求,系列文章: 《Java使用原生HttpURLConnection实现发送HTTP请求》 《Java使用HttpClient5实现发送HTTP请求》 《SpringBoot使用RestTemplate实现发送HTTP请求》 1、RestTemplate 的介绍 RestTemplate 是 Spring 框架提供的一个用…

【前端】如何制作一个自己的网页(9)

前面,我们使用的CSS选择器,是通过元素的标签来指定网页的样式。而CSS中提供了多种不同类型的选择器,我们需要根据不同的情况,选择不同的CSS选择器。 CSS中,常见的基础选择器有三种。分别为:标签选择器、类选…

案例分享—国外优秀UI卡片设计作品赏析

国外UI设计注重用户体验,倾向于采用简洁的布局、清晰的排版和直观的交互方式,减少用户的认知负担。卡片式设计能够完美利用屏幕空间,使内容一目了然,易于用户快速浏览和阅读,从而提升了整体的用户体验。 更加注重扁平化…

一款.NET开源的i茅台自动预约小助手

前言 今天大姚给大家分享一款.NET开源、基于WPF实现的i茅台APP接口自动化每日自动预约(抢茅台)小助手:HyggeImaotai。 项目介绍 该项目通过接口自动化模拟i茅台APP实现每日自动预约茅台酒的功能,软件会在指定时间开始对管理的用…

数据结构与算法 - 树 #数的概念 #二叉树 #堆 - 堆的实现/堆排序/TOP-K问题

文章目录 前言 一、树 (一)、概念 1、树的定义 (二)、树的定义 1、树为什么是递归定义的? 2、如何定义树(如何表达一棵树) 解决方案一:假设我们得知该树的度 解决方案二:顺序表 解决方案三:左孩子右兄弟表示法 二、二叉…

众数信科荣登“2024 CHINA AIGC 100”榜单

2024年10月17日,由非凡产研推出的「2024 CHINA AIGC 100」榜单隆重发布,众数信科凭借领先的企业AI智能体解决方案能力荣登榜单。 非凡产研AIGC 100 评选旨在挖掘国内具有高潜力的AI应用,为AI产业的高质量发展注入新动力。榜单覆盖了教育、医疗…

无人机之融合集群技术篇

无人机的融合集群技术是一个涉及多个领域的复杂技术体系,它结合了无人机技术、自组网技术、集群控制技术以及反制设备等多个方面,旨在实现多架无人机之间的协同、编队、信息共享、任务分配和高效作业。 一、无人机自组网技术 无人机自组网技术是一种利用…

vulnhub靶场之digitalworld.local DEVELOPMENT

一.环境搭建 1.靶场描述 This machine reminds us of a DEVELOPMENT environment: misconfigurations rule the roost. This is designed for OSCP practice, and the original version of the machine was used for a CTF. It is now revived, and made slightly more nefari…

Linux 之 fdisk 【磁盘分区管理】

删除分区 1.查看磁盘信息 lsblk 2.删除分区sdb硬盘下的所有分区 # 1 进入d的磁盘分区 fdisk /dev/sdb # 2 输入p查看磁盘的分区信息 # 3 输入d进入删除磁盘分区命令 # 4 选择要删除的分区号 重复3,4 全部删除 # 5 w 保存退出并生效操作信息 (输入q…

面试应该问什么?

在求职者面试的过程中,向面试官提问是一个展现自己积极态度、对职位和公司兴趣以及进一步了解工作环境和职业发展机会的重要环节。以下是一些求职者可以在面试中向面试官提问的问题,这些问题旨在帮助你更全面地了解未来的工作环境、团队文化、以及个人职…

联系拯救者Y9000P2022笔记本电脑进入BIOS快捷键

联系拯救者Y9000P2022笔记本电脑进入BIOS快捷键 文章目录 联系拯救者Y9000P2022笔记本电脑进入BIOS快捷键1. 进入BIOS快捷键2. 快速进入BIOS设置界面3. 快速进入启动项选择界面 1. 进入BIOS快捷键 进入BIOS设置界面的快捷键为F2快速进入启动项选择界面的快捷键为F12 2. 快速进…

82.【C语言】数据结构之顺序表的初始化和销毁

目录 1.线性表 2.分类 1.静态顺序表:使用定长数组存储元素 代码示例(写入Seqlist.h中) 2.动态顺序表:使用与动态内存管理有关的函数 代码示例(写入Seqlist.h中) 补:数据管理的四个需求:增改删查 3.操作顺序表 1.初始化顺序表 1.不开辟空间 2.开辟空间 1…

音乐播放器-0.专栏介绍​

1.简介 本专栏使用Qt QWidget作为显示界面,你将会学习到以下内容: 1.大量ui美化的实例。 2.各种复杂ui布局。 3.常见显示效果实现。 4.大量QSS实例。 5.Qt音频播放,音乐歌词文件加载,展示。 6.播放器界面换肤。 相信学习了本专栏…

Vxe UI vue vxe-table grid 性能优化,提高渲染性能

Vxe UI vue vxe-table vxe-grid 本身就支持虚拟滚动以及灵活的扩展,可也是由于太过灵活,可定制化程度太高,比如单元格自定义渲染,一旦写得不好,就会影响渲染卡顿。 vxe-table 和 vxe-grid 直接使用 vxe-grid&#xf…

AI论文写作:如何轻松实现高原创度大揭秘

随着人工智能技术的迅猛进步,AI论文写作工具在学术界开始崭露头角,作为一种辅助手段。这些工具不仅能高效地生成论文的初步版本或部分章节,而且其产出的内容往往展现出高度的创新性。本文将探讨AI论文写作工具为何能产出如此高原创度的内容&a…