当前位置: 首页 > news >正文

Shell——流程控制语句(if、case、for、while等)

在 Shell 编程中,流程控制语句用于控制脚本的执行顺序和逻辑。这些语句包括 ifcaseforwhile 等,它们的使用可以使脚本实现更复杂的逻辑。以下是它们的详细说明和语法结构:

1. if 语句

if 语句用于条件判断,执行符合条件的代码块。

语法结构
if [ condition ]; then# 当 condition 为真时执行的语句
elif [ another_condition ]; then# 当 another_condition 为真时执行的语句
else# 当上述条件都不满足时执行的语句
fi

示例

#!/bin/basha=10
b=20if [ $a -gt $b ]; thenecho "a is greater than b"
elif [ $a -lt $b ]; thenecho "a is less than b"
elseecho "a is equal to b"
fi

2. case 语句

case 语句用于多分支选择,通常用于替代 if-elif-else 结构,当需要判断的条件较多时特别有用。

语法结构
case expression inpattern1)# 当 expression 匹配 pattern1 时执行的语句;;pattern2)# 当 expression 匹配 pattern2 时执行的语句;;*)# 默认情况下执行的语句;;
esac

示例

#!/bin/bashday="Monday"case $day in"Monday")echo "Start of the work week";;"Friday")echo "End of the work week";;"Saturday"|"Sunday")echo "It's the weekend!";;*)echo "Midweek day";;
esac

3. for 循环

for 循环用于遍历列表中的每一个元素,通常用于处理数组或一系列的值。

语法结构
for variable in list; do# 对 list 中的每个 variable 执行的语句
done

示例

#!/bin/bashfor i in 1 2 3 4 5; doecho "Number: $i"
done# 或者使用 C 风格的 for 循环
for ((i=1; i<=5; i++)); doecho "Number: $i"
done

4. while 循环

while 循环在条件为真时重复执行一段代码,直到条件为假时停止。

语法结构
while [ condition ]; do# 当 condition 为真时执行的语句
done

示例

#!/bin/bashcount=1while [ $count -le 5 ]; doecho "Count: $count"count=$((count + 1))
done

5. until 循环

until 循环与 while 循环相反,条件为假时重复执行代码块,直到条件为真时停止。

语法结构
until [ condition ]; do# 当 condition 为假时执行的语句
done

示例

#!/bin/bashcount=1until [ $count -gt 5 ]; doecho "Count: $count"count=$((count + 1))
done

总结

  • if 语句用于条件判断和分支执行。
  • case 语句用于多分支选择,适合匹配多个模式。
  • for 循环用于遍历列表或执行固定次数的循环。
  • whileuntil 循环用于在条件满足时反复执行某些代码。
  • breakcontinue 控制循环的执行流。

相关文章:

Shell——流程控制语句(if、case、for、while等)

在 Shell 编程中&#xff0c;流程控制语句用于控制脚本的执行顺序和逻辑。这些语句包括 if、case、for、while 等&#xff0c;它们的使用可以使脚本实现更复杂的逻辑。以下是它们的详细说明和语法结构&#xff1a; 1. if 语句 if 语句用于条件判断&#xff0c;执行符合条件的…...

【redis的大key问题】

在使用 Redis 的过程中&#xff0c;如果未能及时发现并处理 Big keys&#xff08;下文称为“大Key”&#xff09;&#xff0c;可能会导致服务性能下降、用户体验变差&#xff0c;甚至引发大面积故障。 本文将介绍大Key产生的原因、其可能引发的问题及如何快速找出大Key并将其优…...

HighPoint SSD7749M2:128TB NVMe 存储卡实现28 GB/s高速传输

HighPoint Technologies推出了一款全新的SSD7749M2 RAID卡&#xff0c;能够在标准的桌面工作站中安装多达16个M.2 SSD&#xff0c;实现高达128TB的闪存存储。该卡通过PCIe Gen4 x16接口提供高达28 GB/s的顺序读写性能。这些令人瞩目的性能规格伴随着高昂的价格标签。 #### 技术…...

ARM 裸机与 Linux 驱动对比及 Linux 内核入门

目录 ARM裸机代码和驱动的区别 Linux系统组成 内核五大功能 设备驱动分类 内核类型 驱动模块 驱动模块示例 Makefile配置 命令 编码辅助工具 内核中的打印函数 printk 函数 修改打印级别 ​编辑 打印级别含义 驱动多文件编译 示例 模块传递参数 命令行传递参数…...

0101DNS TCP fallback on UDP query timeout disabled-redission-中间件

文章目录 1.问题描述2.临时解决方案 结语 1.问题描述 Springcloud 项目&#xff0c;微服务模块使用redission&#xff0c;启动报错 DNS TCP fallback on UDP query timeout disabled. Upgrade Netty to 4.1.105 or higher.相关软件版本如下 软件版本描述springboot2.7.18spr…...

位运算

x1010 原码&#xff1a;000...1010 &#xff08;一共32位&#xff09; 反码&#xff1a;111...0101 &#xff08;~x&#xff09; 补码&#xff1a;111...0110 &#xff08;反码1&#xff09;&#xff08;-x&#xff09; 1、n 的二进制表示中第 k 位是几 #include<iost…...

MemFire Cloud是否真的可以取代后端

近年来&#xff0c;随着前端技术的迅速发展&#xff0c;前端工程师们越来越多地开始思考一个问题&#xff1a;“我还能不能不依赖后端&#xff1f;” 这种想法并非空穴来风&#xff0c;尤其是随着像MemFire Cloud这样的工具出现&#xff0c;它不仅能让开发者在没有后端的情况下…...

数据结构(邓俊辉)学习笔记】优先级队列 06——完全二叉堆:批量建堆

文章目录 1. 自上而下的上滤&#xff1a;算法2. 自上而下的上滤&#xff1a;效率3. 自下而上的下滤&#xff1a;算法4. 自下而上的下滤&#xff1a;实例5. 自下而上的下滤&#xff1a;效率 1. 自上而下的上滤&#xff1a;算法 在介绍过完全二叉堆标准的静态和动态操作接口之后…...

Java | Leetcode Java题解之第344题反转字符串

题目&#xff1a; 题解&#xff1a; class Solution {public void reverseString(char[] s) {int n s.length;for (int left 0, right n - 1; left < right; left, --right) {char tmp s[left];s[left] s[right];s[right] tmp;}} }...

定制开发AI智能名片O2O商城小程序:基于限量策略与个性化追求的营销创新

摘要:随着科技的飞速发展和消费者需求的日益多元化&#xff0c;传统商业模式正经历着前所未有的变革。在数字化转型的大潮中&#xff0c;定制开发AI智能名片O2O商城小程序作为一种新兴的商业模式&#xff0c;凭借其独特的个性化定制能力、高效的线上线下融合&#xff08;O2O&am…...

Spring MVC Controller返回json日期格式配置失效的解决办法

如题&#xff0c;Spring MVC 4.3.0版本&#xff0c;配置jackson读写json。Controller层方法返回值对象包含java.util.Date类型的属性&#xff0c;并且在applicationContext.xml中配置了jackson的日期格式&#xff1a; <mvc:annotation-driven><mvc:message-converters…...

3.Default Constructor的构造操作

目录 1. 问题引入 2. 4种implicitly声明的default constructor 1. 问题引入 “default constructors......在需要的时候被编译产生出来”。关键词是“在需要的时候”&#xff0c;被谁需要&#xff0c;做什么事情&#xff1f;看看下面的代码&#xff0c;然后梳理下思路。 cl…...

CSS的:current伪类:精准定位当前活动元素

CSS&#xff08;层叠样式表&#xff09;是控制网页样式的核心语言。随着CSS4的提出&#xff0c;一系列新的选择器被引入&#xff0c;其中:current伪类便是这些新特性之一。:current伪类允许开发者选择当前处于活动状态的元素&#xff0c;这在创建动态和交互性网页时非常有用。本…...

搭建个人网站

一 个人搭建网站需要进行的操作 详细步骤&#xff1a; 1 网站目标&#xff1a;搭建在线查看法拍房拍卖价格的预测模型&#xff0c;输出预测结果 2 实际功能&#xff1a;在线爬取 阿里法拍网站的信息 3 根据实时模型建模预测法拍价格和成交概率 要搭建一个能够在线查看法拍房拍卖…...

机器学习课程学习周报八

机器学习课程学习周报八 文章目录 机器学习课程学习周报八摘要Abstract一、机器学习部分1.1 self-attention的计算量1.2 人类理解代替自注意力计算1.2.1 Local Attention/Truncated Attention1.2.2 Stride Attention1.2.3 Global Attention1.2.4 聚类Query和Key 1.3 自动选择自…...

福泰轴承股份有限公司进销存系统pf

TOC springboot413福泰轴承股份有限公司进销存系统pf 绪论 1.1 研究背景 现在大家正处于互联网加的时代&#xff0c;这个时代它就是一个信息内容无比丰富&#xff0c;信息处理与管理变得越加高效的网络化的时代&#xff0c;这个时代让大家的生活不仅变得更加地便利化&#…...

【k8s从节点报错】error: You must be logged in to the server (Unauthorized)

k8s主节点可以获取nodes节点信息&#xff0c;但是从节点无法获取&#xff0c;且报错“error: You must be logged in to the server (Unauthorized)” 排查思路&#xff1a; 当时证书过期了&#xff0c;只处理的主节点的证书过期&#xff0c;没有处理从节点的 kubeadm alpha …...

风清扬/基于Java语言的光伏监控系统+光伏发电预测+光伏项目+光伏运维+光伏储能项目

基于Java语言的光伏监控系统光伏发电预测光伏项目光伏运维光伏储能项目 介绍 基于Java语言的光伏监控系统光伏发电系统光伏软件系统光伏监控系统源码光伏发电系统源码 基于Java语言的光伏监控系统光伏发电预测光伏项目光伏运维光伏储能项目 安装教程 参与贡献 Fork 本仓库新…...

Datawhale X 魔搭 AI夏令营第四期 魔搭-AIGC方向全过程笔记

task1: 传送门 task2&#xff1a; 传送门 task3: 传送门 目录 Task1 赛题内容 可图Kolors-LoRA风格故事挑战赛 baseline要点讲解(请配合Datawhale速通教程食用) Step1 设置算例及比赛账号的报名和授权 Step2 进行赛事报名并创建PAI实例 Step3 执行baseline Step4…...

数组---怎么样定义和引用数组

一怎么定义数组 例 int a[10]; //定义了一个一维数组&#xff0c;数组名为a&#xff0c;此数组包含10个整型元素 所以我们了解到数组的基本定义为 类型符 数组名 [常量表达式] 定义数组可以包括常量和符号常量如 int [ 35 ];但是不能利用变量定义如 int n&#xff1b; …...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...