shell脚本循环语句

目录

一. 循环语句

1. 循环条件

2. 循环次数

3. 循环命令区别

4. for 循环

①. 第一种语法

②. 第二种语法

5. while 循环

6. until 循环

二. 跳出循环

1. break 结束循环

2. continue 结束循环

3. exit 结束循环

三. 补充

1. 偶数的表示

2. 奇数的表示


一. 循环语句

1. 循环条件

脚本实现循环一定要有循环的条件

①. 已知循环的次数

②. 未知循环的次数,但要有一个跳出循环的条件

2. 循环次数

①. 循环列表只和循环次数有关

②. 循环列表有几个值便循环几次

3. 循环命令区别

循环命令有三个:for 、while 、until

①. for 命令用在已知次数

      while 、until 用在已知限定条件

②. while 条件成功时执行

      until 条件不成功时执行

4. for 循环

执行机制:遍历

①. 第一种语法

#!/in/bashfor i in {取值范围}do执行的命令序列done

②. 第二种语法

#!/bin/bashfor ((expr1;expr2;expr3))do执行的命令序列done#expr1:定义变量并赋初值
#expr2:决定是否循环
#expr3:决定循环变量如何改变,决定循环什么时候退出#如:((i=1;i<=100;i++))

5. while 循环

while [ 判断条件 ]  
#条件成功时继续循环do命令序列let 
#改变循环条件done

6. until 循环

until [ 判断条件 ]  
#条件不成功时执行循环do命令序列let 
#改变循环条件done

7. 死循环

while死循环
while true
while :
while [ 1 -eq 1 ]
#判定永远为成功,没有跳出条件until死循环
until false
until [ 1 -eq 0 ]
#判断永远为不成功,没有跳出条件

二. 跳出循环

1. break 结束循环

①. 用于跳出一个循环或者结束一个循环,在循环语句中,不仅仅是结束本层循环,也可以结束整个循环体。

②. 在循环体中的break被执行时,系统会直接结束整个循环体,而去运行这个循环体之后的代码。

③. 特殊情况:

只有在switch语句中时,break的作用只是结束该switch语句,并不能结束整个循环体的运行。

#!/bin/bashfor i in {1..10}doif [ $i -eq 5 ]thenbreakfiecho $idone

2. continue 结束循环

①. 跳过本次循环体中剩下没有执行的语句,立即开始执行下一次的循环条件判定。

②. continue 语句并没有使整个循环体结束执行。

#!/bin/bashfor i in {1..10}doif [ $i -eq 5 ]thencontinuefiecho i=$idone

3. exit 结束循环

循环体中的 exit 被执行时,是直接跳出整个脚本。

三. 补充

1. 偶数的表示

①. { 0..100..2 }

从0开始,到100结束,步长为2

②. seq 0 2 100

2. 奇数的表示

①. { 1..100..2 }

从1开始,到100结束,步长为2

②. seq 1 2 100

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

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

相关文章

TOGAF —体系结构治理

本章提供了架构治理的框架和指南。 3.1 引言 本部分介绍治理的性质和治理级别。 3.1.1 企业内部的治理级别 架构治理是管理企业架构和其他架构的实践和方向 并在企业范围内进行控制。 架构治理通常不是孤立地运作,而是在治理结构的层次结构中运作,其中, 特别是在大型企…

【测试开发工程师】TestNG测试框架零基础入门(上)

哈喽大家好&#xff0c;我是小浪。那么今天是一期基于JavaTestNG测试框架的入门教学的博客&#xff0c;从只会手工测试提升到自动化测试&#xff0c;这将对你的测试技术提升是非常大的&#xff0c;有助于我们以后在找工作、面试的时候具备更大的竞争力~ 文章目录 一、什么是T…

香港证监会再点名,三家“可疑虚拟资产平台交易平台”!

JPEX事件之后&#xff0c;香港证监会通过对可疑平台进行曝光&#xff0c;以提升虚拟资产交易平台牌照申请的透明性。最近&#xff0c;香港证监会于官网再点名三家“可疑虚拟资产平台交易平台”。截至目前&#xff0c;香港证监会在官网共点名9家可疑虚拟资产交易平台。 据了解&a…

【数据结构实验】图(一)Warshall算法(求解有向图的可达矩阵)

文章目录 1. 引言2. Warshall算法原理2.1 初始化可及矩阵2.2 迭代更新可及矩阵 3. 实验内容3.1 实验题目&#xff08;一&#xff09;输入要求&#xff08;二&#xff09;输出要求 3.2 算法实现 4. 实验结果 1. 引言 Warshall算法是一种用于求解有向图的可达矩阵的经典算法。该算…

一文带你深入理解MySQL的三大连接方式:左连接、右连接和内连接!

个人网站 本文首发于公众号小肖学数据分析 在MySQL中&#xff0c;常见的三种关联方式是左连接&#xff08;left join&#xff09;、右连接&#xff08;right join&#xff09;和内连接&#xff08;inner join&#xff09;。 本文我将详细介绍这三种关联方式&#xff0c;并提…

用Python进行数据分析:探索性数据分析的实践与技巧(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

死锁是什么?死锁是如何产生的?如何破除死锁?

1. 死锁是什么 多个线程同时被阻塞&#xff0c;它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞&#xff0c;因此程序不可能正常终止。 2. 死锁的三种典型情况 一个线程, 一把锁, 是不可重入锁, 该线程针对这个锁连续加锁两次, 就会出现死锁. 两个线程…

通过JMeter压测结果来分析Eureka多种服务下线机制后的服务感知情况

文章目录 前言1. Eureka-Server的设计2. EurekaRibbon感知下线服务机制3.服务调用接口压测模型4.Eureka几种服务下线的方式4.1强制下线压测 4.2 发送delete&#xff08;&#xff09;请求压测 4.3 调用DiscoveryManager压测 4. 三方工具Actuator 总结 前言 上文末尾讲到了Eurek…

Java 8 lambda的一个编译bug

最近利用github action向Maven中央仓库发布企业微信SDK时会失败&#xff0c;从日志中发现是系统资源耗尽了&#xff0c;日志如下&#xff1a; [INFO] Changes detected - recompiling the module! :dependency [INFO] Compiling 35 source files with javac [debug target 8] …

MySQL索引 Error1071

MySQL创建索引错误 Error 1071:Specified key was too long 目录 1. 起因2. 使用环境3. 查找问题的原因4. 解决方案5. 另外的解决方案6. 前缀索引 起因 事情的起因在一次生产环境部署启动服务&#xff0c;发现启动服务时间特别长&#xff0c;超过了5分钟的时间。于是&#…

isis基础大全学习案例

R1配置&#xff1a; isis 1 is-level level-2 //本区域只启用level-2级别 cost-style wide //默认为narrow窄度量&#xff0c;开销只能最大63&#xff0c;并且不能打tag&#xff0c;wide宽度量的tlv和narrow不匹配&#xff0c;不能相互计算路由&#xff0c;两边都要改。 netwo…

MySQL- 创建可以远程访问的root账户

创建用户 默认的root用户只能当前节点localhost访问&#xff0c;是无法远程访问的&#xff0c;所以&#xff0c;我们要创建一个root账户&#xff0c;帮助用户远程访问。 create user root% IDENTIFIED WITH mysql_native_password BY 1234;这个命令是在MySQL数据库管理系统中…

【C++那些事儿】类与对象(3)

君兮_的个人主页 即使走的再远&#xff0c;也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们&#xff0c;这里是君兮_&#xff0c;我之前看过一套书叫做《明朝那些事儿》&#xff0c;把本来枯燥的历史讲的生动有趣。而C作为一门接近底层的语言&#xff0c;无疑是抽象且难度颇…

为什么 MQTT 对于构建联网汽车至关重要

汽车行业正在接受构建联网汽车的想法。他们看到了利用车辆遥测数据创造新收入机会并打造更好用户体验的机会。然而&#xff0c;实施可扩展以支持数百万辆汽车的联网汽车服务可能会带来一些挑战。 对于大多数联网汽车服务&#xff0c;汽车和云之间需要进行双向通信。汽车将遥测…

Redis:事务操作

目录 Redis事务定义相关命令事务的错误处事务冲突的问题Redis事务三特性 Redis事务定义 redis事务是一个单独的隔离操作&#xff0c;事务中的所有命令都会序列化、按顺序地执行&#xff0c;事务在执行的过程中&#xff0c;不会被其他客户端发送来的命令请求所打断。 redis事务…

VCenter连接主机提示:未验证主机SSL证书的真实性

问题&#xff1a;VCenter主机断开连接了&#xff0c;重新连接主机报错SSL证书问题 移除重新加入ESXI6.0节点报错常规系统错误&#xff08;如下图&#xff09; 解决方案&#xff1a;需更改一下验证方式 VCenter Serevr设置→高级设置 将项cpxd.certmgmt.mode 值 vmca 改为&…

《微信小程序从入门到精通》---笔记1

小程序&#xff0c;我又来学习啦&#xff01;请多关照~ 项目驱动 小程序开发建议使用flex布局在小程序中&#xff0c;页面渲染和业务逻辑是分开的&#xff0c;分别运行在不同的线程中。Mini Program于2017年1月7号正式上线小程序的有点&#xff1a;跨平台、开发门槛低、开发周…

VS2022的props配置

最近在点云处理项目过程中&#xff0c;使用了PCL库&#xff0c;遇到了需要在多个vs工程中导入相同库的问题。每次新建项目都要配置很多include文件路径&#xff0c;导入一堆.lib文件&#xff0c;非常头疼&#xff0c;可以通过props属性表来解决这个问题。 一、什么是props属性…

Gin 学习笔记01-数据返回

Gin 数据返回 1、返回 string 和 json2、返回 xml 和 ymal3、返回html4、重定向 1、返回 string 和 json c.String()c.JSON() package mainimport ("github.com/gin-gonic/gin""net/http" )func getJSON(c *gin.Context) {//c.String(http.StatusOK, &qu…

紧急救援【Dijkstra】

作为一个城市的应急救援队伍的负责人&#xff0c;你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候&#xff0c;你的任务是带领你的…