shell脚本学习编写之路—循环

shell脚本编写之路—循环

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

for循环

上一节讲述啦简单的for循环编写脚本,通过给定的字符串,那么如果循环的数据很大呢?比如要输出1-100的所有整数这个时候就不能在给定字符串来进行引用啦,比如下面这个

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

简单解释一下:

for i in `seq 1 100`

for启动啦一个循环,seq 1 100是一个命令,用于生成从1到100的整数序列。来作为for循环的值,每次循环时,变量i都会被赋予这个序列中的一个值。

do标志for循环的开始

echo $i在循环体内,用于打印变量i的值。每次循环时都会更新

done标志循环体结束

运行结果

或者换一种方式进行编写:

#!/bin/bash
for ((i=1; i<100; i++))
do
	echo $i
done

注意这里一定要换成bash指令,不然会报错

主要原因是因为for ((i=1; i<100; i++))是一个bash中的C风格for循环,

运行结果:

会发现他的结尾直到99,是因为当i=99时,已经无法满足i<100的循环条件,如果想要输出到100就要改成i<=100或者i<101

while 循环

while循环和for循环类似,写个简单一点的脚本来看看

i=1
while (($i<=10))
do 
	echo $i
	((i++))
done

while (( $i <= 10 )):开始一个while循环,条件是变量i的值小于或等于10。注意,使用了双括号(( ))来进行算术比较,并且变量i前面有$符号来引用其值。

观察可以发现和for循环大差不差,只是需要讲改变变量的语句写入到循环体中

运行结果:

在下面也可以不用(())换成let

i=1
while (($i<=10))
do 
	echo $i
	let "i++"
done

效果是一样的

until循环

一个新的循环,老规矩先写一个脚本来看看

i=0
until [ ! $i -lt 10 ]
do 
	echo $i
	((i++))
done

until [! $i -lt 10 ] 是一个条件测试表达式。其中,$i 是引用前面定义的变量 i 的值,-lt 是比较操作符,用于判断左边的值是否小于右边的值。整个表达式 $i -lt 10 的结果是一个布尔值(真或假),如果 i 的值小于 10,那么这个表达式的值为真。而前面的 ! 是逻辑非操作符,它会对后面表达式的结果取反。所以,整个 until 循环的条件就是当 i 的值不小于 10(即大于等于 10)时,循环停止。

也可以写成:

i=0
until [ $i -ge 10 ]
do 
	echo $i
	((i++))
done

运行结果一样,因为归根到底来说两个脚本的逻辑是一样的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值