shell编程7,bash解释器的 for循环+while循环

声明!

学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec

shell7,bash解释器的 for循环+while循环

for

前面已经讲过for循环了,不过是sh解释器的for循环,前面已经说过了:在kali中sh解释器的其实是指向dash解释器,而dash解释器是bash解释器的简化版,只有bash解释器的1/10左右的大小 ,所以bash解释器可以支持更多更复杂的语法

for循环有三种写法:反引号,`$(...)`,`((...))` **第一种,**

bash 复制代码
for i in `seq 1 100`
do
	echo $i
done
  • seq 1 100 : 这个命令生成一个数字序列,从1开始直到100(包括100)。seq是一个在Linux/Unix系统中用来产生一系列数字的工具。在这个例子中,它将生成一系列连续的整数:1, 2, 3, ..., 98, 99, 100。
  • for i in ... : 这是for循环的开始,它会遍历由seq 1 100生成的所有数字。每次迭代时,变量i都会被设置为当前迭代中的数字。
  • do...done : 这两个关键字定义了循环体,即在每次迭代时要执行的代码块。在这个例子中,循环体只包含了一条语句------echo $i,这条语句用于输出当前迭代中的数字i
  • echo $i : 在每次循环中,echo命令会被调用,并且当前值$i会被打印到标准输出。

第二种,$(...)

bash 复制代码
for i in $(seq 1 100)
do
	echo $i
done

第三种,((...))

或者使用C语言风格的for循环语法,这可能对熟悉C语言的程序员来说更加直观:

注意:这里的语法不像sh解释器那么严苛,符号前后不需要强制空格

这样标准的也行

bash 复制代码
for (( i=1; i<=100; i++ ))
do
	echo $i
done
复制代码
for ((i=i;i<100;i++ ))
do
        echo $i
done

这里,(( i=1; i<=100; i++ ))直接指定了循环的初始化、条件测试和增量操作,使得整个循环结构看起来更加紧凑。

while

while循环有编程基础的应该都知道,就不细讲语法了,大家看一下实例就都知道怎么写了。还是和for循环一样,将一下sh和bash,注:sh可以的bash都可以

sh解释器

首先sh解释器只能使用[]或者test来规定循环的结束条件,其次对于,循环变量的变化sh解释器可以使用的语法有:$((...))$(expr $i + 1)
$((...))

复制代码
i=1
while [ $i -lt 10  ]
do
        echo $i
        i=$((i+1))
done

$(expr $i + 1)

复制代码
i=1
while [ $i -lt 10  ]
do
        echo $i
        i=$(expr $i + 1)
done

sh解释器不支持:(())和let
如果将i=$((i+1))替换成((i++))

复制代码
i=1
while [ $i -lt 10  ]
do
        echo $i
        ((i++))
done

不支持

程序报错,但是不会停止运行,会直接死循环

替换成let

复制代码
i=1
while [ $i -lt 10  ]
do
        echo $i
        let i=i+1
done

还是一样,程序报错,但是不会停止运行,会直接死循环

bash解释器

sh可以的bash一定可以

bash可以使用更加简单的语法:循环结束条件可以使用(()),循环变量的变化可以使用$((...))$(expr $i + 1)(())let

复制代码
i=1
while(($i<=10))
do
        echo $i
        ((i++))
done

let的使用上面已经讲了,这里就不演示了

相关推荐
while(1){yan}1 天前
Spring事务
java·数据库·spring boot·后端·java-ee·mybatis
盛世宏博北京1 天前
高效环境管控:楼宇机房以太网温湿度精准监测系统方案
开发语言·数据库·php·以太网温湿度变送器
GLDbalala1 天前
GPU PRO 4 - 5.3 A Pipeline for Authored Structural Damage 笔记
笔记
IT猿手1 天前
六种智能优化算法(NOA、MA、PSO、GA、ZOA、SWO)求解23个基准测试函数(含参考文献及MATLAB代码)
开发语言·算法·matlab·无人机·无人机路径规划·最新多目标优化算法
运维行者_1 天前
2026 技术升级,OpManager 新增 AI 网络拓扑与带宽预测功能
运维·网络·数据库·人工智能·安全·web安全·自动化
gfdhy1 天前
【C++实战】多态版商品库存管理系统:从设计到实现,吃透面向对象核心
开发语言·数据库·c++·microsoft·毕业设计·毕设
忧郁的橙子.1 天前
26期_01_Pyhton文件的操作
开发语言·python
余瑜鱼鱼鱼1 天前
线程和进程的区别和联系
java·开发语言·jvm
三伏5221 天前
Cortex-M3重启流程——笔记
笔记·cortex-m3
*.✧屠苏隐遥(ノ◕ヮ◕)ノ*.✧1 天前
《苍穹外卖》- day01 开发环境搭建
spring boot·后端·spring·maven·intellij-idea·mybatis