【Shell】循环语句基础

Shell 循环

循环语句

  • Shell 循环
    • 循环的定义
    • for 循环
      • for循环的C语言格式
    • while 循环
    • until 循环

循环的定义

循环在编程中通常指循环结构

循环结构是编程中的一种控制结构,它允许代码在满足特定条件时重复执行一段特定的指令集合,这部分重复执行的代码被称为循环体。循环结构通常包括以下几个关键部分:

  1. 初始化:设置循环开始前的初始条件,例如设置计数器变量的起始值。
  2. 循环条件:一个布尔表达式,用于判断是否继续执行循环体。只要该条件为真,循环体就会一直执行。
  3. 循环体:包含需要重复执行的代码块。
  4. 迭代:在循环体的每次执行后更新循环条件,通常是改变计数器变量的值。
  5. 终止条件:当循环条件不再满足时,循环结束,程序继续执行循环结构之后的代码。

总的来说,循环结构使得程序能够有效地处理重复性任务,是编程中实现算法逻辑的重要工具之一。

循环语句主要有以下几种:

for 循环

for 循环用于遍历一组数据,语法如下:

    
for 变量 in 值1 值2 ... 值n
do
    命令1
    命令2
    ...
    命令n
done

示例:

        
for i in 1 2 3 4 5
do
    echo "这是第 $i 次循环"
done

在这里插入图片描述

在 Bash 中,可以使用 {} 语法来生成一个数字序列。例如:

for i in {1..100}
do
    echo $i
done

输出结果为:

1
2
3
...
98
99
100

其中,{1..100} 表示从 1 到 100 的数字序列,$i 表示当前循环的变量值。

  • 自定义步长:Bash的{start..end..step}格式允许你指定一个步长,这样你可以生成不连续的数字序列。
#输出1到100之间的奇数
for i in {1..100..2}; do
    echo $i
done

for循环的C语言格式

在Bash中,for循环的C语言格式如下:

for ((初始值; 条件; 迭代))
do
    命令1
    命令2
    ...
done

例如,下面的代码将打印数字1到5:

for ((i=1; i<=5; i++))
do
    echo $i
done

在这里插入图片描述

while 循环

while 循环用于在满足某个条件时执行一组命令,语法如下:

    
while [ 条件判断式 ]
do
    命令1
    命令2
    ...
    命令n
done

示例:

i=1
while [ $i -le 5 ]
do
    echo "这是第 $i 次循环"
    i=$((i+1))
done

在这里插入图片描述

until 循环

until 循环与 while 循环类似,不过它是在条件判断式为假时执行循环体,语法如下:

until [ 条件判断式 ]
do
    命令1
    命令2
    ...
    命令n
done

示例:

i=1
until [ $i -gt 5 ]
do
    echo "这是第 $i 次循环"
    i=$((i+1))
done

在这里插入图片描述


在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ADP-2-20+ 信号调节 20MHz-2GHzRF功分器 合路器

ADP-2-20 是一款由Mini-Circuits公司出产的功分器&#xff08;power divider&#xff09;。这款功分器的工作温度规模为-40C至85C&#xff0c;贮存温度规模为-55C至100C。作为分路器&#xff0c;它的电源输入最高可达1W&#xff0c;内部功耗最大为0.125W。假如超越这些限制&…

BFS宽度优先搜索例题(蓝桥杯)——逃跑的牛

问题描述&#xff1a; 农夫John的一头牛逃跑了&#xff0c;他想要将逃跑的牛找回来。现假设农夫John和牛的位置都在一条直线上&#xff0c;农夫John的初始位置为N&#xff08;0≤N≤100,000&#xff09;&#xff0c;牛的初始位置为K&#xff08;0≤K≤100,000&#xff09;。农夫…

人社大赛算法赛题解题思路分享+季军+三马一曹团队

团队成员介绍: 梅鵾 上海交通大学 众安科技 算法工程师 吴栋梁 复旦大学 众安科技 算法工程师 李玉娇 复旦大学 众安科技 算法工程师 一、赛题背景分析及理解 本赛题提供了部分地区2016年度的医疗保险就医结…

改进YOLOv8注意力系列七:结合空间关系增强注意力SGE、SKAttention动态尺度注意力、TripletAttention

改进YOLOv8注意力系列七:结合空间关系增强注意力SGE、SKAttention动态尺度注意力、全局上下文信息注意力Triplet Attention 代码Spatial Group Enhance (SGE)SKAttention动态尺度注意力全局上下文信息注意力Triplet Attention(无参)加入方法各种yaml加入结构本文提供了改进 Y…

openGauss 5.0 单点企业版部署_Centos7_x86(上)

背景 通过openGauss提供的脚本安装时&#xff0c;只允许在单台物理机部署一个数据库系统。如果您需要在单台物理机部署多个数据库系统&#xff0c;建议您通过命令行安装&#xff0c;不需要通过openGauss提供的安装脚本执行安装。 本文档环境&#xff1a;CentOS7.9 x86_64 4G1…

IDEA import时不使用*

在使用 IDEA 进行开发时&#xff0c;会经常使用到 import 关键字导入所需的类。 IDEA 默认设置是同包类是超过 5 个或者静态导入超过 3 个变成 import xxx.*。 但 import xxx.* 的形式会造成一些用不到的类被引入&#xff0c;导致资源浪费&#xff0c;最好还是不使用这种方式…

雷达学习之多普勒频率

一、多普勒频率如何产生&#xff1f; 雷达的原理是发射一些无线电脉冲来探测目标&#xff0c;并通过回波的延时来计算目标与雷达的距离&#xff0c;但当目标为运动物体时&#xff0c;在回波向目标传输的同时&#xff0c;目标也会远离或接近回波&#xff0c;所以会导致回波信号…

【git】checkout origin/xxx 出现 detached HEAD问题

git 检出远程分支出现Head分离的是什么原因导致的呢&#xff1f;&#xff1f; 因为Head指向了origin的一个commit, 但是这个origin分支你的本地又没有&#xff0c;也就是说你本地没有追踪这个分支&#xff0c;那就要track一下 git checkout -h 看一下有没有追踪的命令 果不其…

【golang】动态生成微信小程序二维码实战下:golang 生成 小程序二维码图片 并通过s3协议上传到对象存储桶 | 腾讯云 cos

项目背景 在自研的系统&#xff0c;需要实现类似草料二维码的功能 将我们自己的小程序&#xff0c;通过代码生成相想要的小程序二维码 代码已经上传到 Github 需要的朋友可以自取 https://github.com/ctra-wang/wechat-mini-qrcode 一、生成Qrcode并提交到对象存储 通过源生A…

前端:自制年历

详细思路可以看我的另一篇文章《前端&#xff1a;自制月历》&#xff0c;基本思路一致&#xff0c;只是元素布局略有差异 ①获取起始位startnew Date(moment().format(yyyy-01-01)).getDay() ②获取总的格子数numMath.ceil(365/7)*7,这里用365或者366计算结果都是一样的371 …

数据库中了勒索病毒怎么办?(数据库恢复的终极大招DUL)

数据库如何预防勒索病毒 接上文&#xff0c;如果数据库中了勒索病毒&#xff0c;并且备份也同样被攻陷&#xff0c;那该怎么办&#xff1f;以最为常见的Lockbit3.0为例&#xff0c;LockBit采用先进的加密算法&#xff0c;通常是对称密钥加密和非对称密钥加密的组合。这使得被感…

适合虚拟主持人活动的全身动作捕捉设备:VDSuit Full

在虚拟主持人领域&#xff0c;全身动作捕捉设备一直以其逼真的效果和生动的表现力备受瞩目。相比光学全身动作捕捉设备&#xff0c;惯性全身动作捕捉设备更适合应用在企业品牌虚拟主持人发布会、虚拟主持人直播等活动场合。 广州虚拟动力全身动作捕捉设备VDSuit Full&#xff0…

OSCP靶场--Nagoya

OSCP靶场–Nagoya 考点 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.214.21 -sV -sC -Pn --min-rate 2500 -p- Starting Nmap 7.92 ( https://nmap.org ) at 2024-04-02 08:52 EDT Nmap scan report for 192.168.214.21 Host is up (0.38s latency).…

colmap安装问题汇总

问题目录 问题0、没有root权限怎么安装colmap&#xff1f; 问题1、ERROR: SiftGPU not fully supported/Could not connect to any X display 问题2、Cannot specify include directories for imported target "freeimage::FreeImage". 问题3、could not find ZL4 问…

鸿蒙ArkUI开发学习:【渲染控制语法】

ArkUI开发框架是一套构建 HarmonyOS / OpenHarmony 应用界面的声明式UI开发框架&#xff0c;它支持程序使用 if/else 条件渲染&#xff0c; ForEach 循环渲染以及 LazyForEach 懒加载渲染。本节笔者介绍一下这三种渲染方式的使用。 if/else条件渲染 使用 if/else 进行条件渲染…

AI大模型的10大趋势预判!

大模型发展竞争愈发激烈。全球瞩目的文生视频Sora、谷歌Gemini 1.5、Meta的V-JEPA以及超越GPT4的Claude3相继发布。Open AI的GPT5也即将问世。奥特曼不仅自研芯片&#xff0c;还投资可控核聚变公司&#xff0c;以算力和能源为未来储备关键资源。 在算力紧平衡和数据资源荒的背…

俄罗斯留学有哪些世界一流的名校呢,柯桥留学俄语培训

有哪些世界一流的名校呢 ☢ 理工类院校 俄罗斯是科教大国&#xff0c;高等教育水平位于世界前列&#xff0c;拥有许多国际著名大学。众多世界知名大学拥有很多独具特色的优势专业&#xff0c;其中理工类大学得天独厚的专业性也是被世界所认可的。凭着其高水准的教育&#xff…

gitee和idea集成

1 集成插件 2 配置账号密码 3 直接将项目传到仓库 4直接从gitee下载项目

yolov5交互式界面 通用界面-yolo-pyqt-gui(通用界面制作+代码-V5.0-6.0版本)

"YOLOv5交互式界面 - 通用界面-YOLO-PyQt-GUI" 它为YOLOv5的目标检测模型提供了一个用户友好的图形化操作界面。该项目通常基于Python的PyQt库构建&#xff0c;用于封装YOLOv5的功能&#xff0c;并将其转化为可视化工具&#xff0c;使得非专业开发人员也能便捷地使用…

超越接口:探索Dubbo的泛化调用机制

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 超越接口&#xff1a;探索Dubbo的泛化调用机制 前言泛化调用的概念Dubbo 中泛化调用的工作原理泛化实现动态RPC泛化调用的高级用法参数和返回值处理异常处理和错误处理策略 controller实践 前言 在现…