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

shell编程7

声明
学习视频来自B站UP主 泷羽sec
for循环与while循环

for 循环 例子

代码如下:

for i in `seq 1 100`
do
echo $i
done

或者
for i in $(seq 1 100)
do
echo $i
done
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

反引号的作用
在 shell 脚本中,反引号用于命令替换。它会将反引号中的命令执行,并将执行结果替换到原命令所在的位置。
seq的作用
seq是一个在 shell 中用于生成数字序列的命令。它可以按照指定的起始值、步长和结束值来生成一系列的数字。
$(命令)的作用
用于命令替换
i 的 i 的 i是用来引入变量的
进入到 bash 环境下 然后执行代码,这两种写法的功能都是一样的都是让i依次取从1到100 的值,然后在每次循环中打印出i的值。
for(( i=1;i<100;i++ ))
do
echo $i
done
在这里插入图片描述
在这里插入图片描述

只有bash可以执行,前两个不兼容 。
在 for 循环的双括号语法(())中:
初始化部分 i=1 是给循环变量赋初值为 1。
条件判断部分 i<100 表示只要的值小于 100,循环就会继续执行。
迭代部分: i++是每次循环结束后让 i 的值自增 1,这样就能实现从 1开始,每次增加 1,直到i达到 99(因为当i等于100 时就不满足 i<100 这个条件了),并在每次循环中通过echo 输出 i的当前值。

while循环
i=1
while (($i<10))
do
echo $i
((i++))
done
或者
i=1
while(( $i<=10 ))
do
echo $i
let “i++”
done

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

代码(1)变量初始化:
首先通过 i=1 这一行,将变量 ì 初始化为 1,为后续的循环操作确定起始值。
循环条件判断:
while(($i<=10))是循环的条件判断部分。这里使用了双括(())语法,它用于进行算术表达式的计算和判断。在每次循环开始前,都会检查 i的值是否小于等于 10。只要这个条件满足循环体内部的代码就会被执行。
循环体执行内容:
在循环体内部,首先通过 echo $i 这一行,将当前 i的值输出到控制台,,这样就可以看到循环过程中i的变化情况接着,通过((i++))这一语句对变量 i进行自增操作。这里())语法同样用于算术运算,i++表示将 i的值增加 1。每次循环结束后,i的值就会比上一次循环时增加 1,以便在下次循环开始时进行新的条件判断。

代码(2)
变量初始化与循环条件判断:这部分和第一种实现方式完全相同。先是通过i=1初始化变量i,然后通过 while(( $i<=10))来判断循环是否继续进行只要 i的值小于等于 10,循环就会持续。循环体执行内容:
同样,在循环体中首先通过 echo $i 输出当前 i的值。不同之处在于对变量i进行自增操作的语句。这里使用了let 命令,,let"i++"的作用也是将变量i的值增加1。let 命令用于执行算术运算,它可以接受一个或多个算术表达式作为参数,并对相关变量进行相应的运算操作。
总的来说,这两种实现方式都能达到通过 while循环输出1到10的整数的目的,只是在对变量进行自增操作时使用了不同的语法形式,但它们的功能是等效的。


http://www.kler.cn/a/456094.html

相关文章:

  • 前端往后端传递参数的方式有哪些?
  • 机器人C++开源库The Robotics Library (RL)使用手册(三)
  • 『大模型笔记』评估大型语言模型的指标:ELO评分,BLEU,困惑度和交叉熵介绍以及举例解释
  • Kalilinux下MySQL的安装
  • WebRTC服务质量(11)- Pacer机制(03) IntervalBudget
  • VBA技术资料MF243:利用第三方软件复制PDF数据到EXCEL
  • Ubuntu通过mDNS实现局域网local域名和octoprint域名访问
  • 巧用mask属性创建一个纯CSS图标库
  • ‘pnpm’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
  • 如何在嵌入式系统或计算机系统中验证boot程序
  • CountDownLatch
  • 在K8S中,CNI有什么作用?
  • Day37灯泡开关
  • vim多窗格
  • 访问网页的全过程
  • springmvc-拦截器-异常处理
  • [MySQL报错]关于发生net start mysql 服务无法启动,服务没有报告任何错误的五种解决方案。
  • 串口通信标准RS232、RS422、RS485有什么区别和不同
  • 哪些框架、软件、中间件使用了netty? 哪些中间件、软件底层使用了epoll?
  • HCIA笔记9--NAT、ACL与链路聚合
  • IDE 强大功能背后的 Language Server Protocol 详解
  • Python einops库介绍
  • uniapp中实现APP调用本地通知栏通知、震动、本地提示音或者mp3提醒
  • AMD | GPU | 深度学习 | 如何使用
  • 从零开始开发纯血鸿蒙应用之日志模块实现
  • Go语言的数据结构