泷羽sec----shell编程(7)

for循环

前言

前面已经说过for循环的结构,这里直接讲述其实际运用

实操

循环1-100的数字

for i in `seq 1 10`
do
	echo $i
done
反引号有执行命令的效果,这里是生成1-10的序列
下面与前面一样
for i in $(seq 1 10)
do
	echo $i
done
前面说过seq不能使用sh解释了,因为不支持

image

image

上面是生成的形式,这里可以有其他写法

for ((i=1; i<10;i++))
do
	echo $i
done
这种写法类似于c语言中的条件判断,不过就是没有那么多()
i=1是初始值
i<10是循环的判断
这里的i++是步长,可以设置更高
i++与其他语言中类似是指 i=i+1的样子

image

注意的是,这里的循环判断与if判断是有区别的。
可以看到循环判断是数字时,可以使用<>
但是if判断中的数字比较,使用-lt-gt-eq

(())可用于算数运算和逻辑判断

或者可以使用(()),可以通过这个在里面使用><进行判断

当然这里的条件判断也可以是从大到小的
如i=9初始值,当i>0的时候执行循环,也是可以遍历的,只是顺序是反的

image

while循环

前言

for循环有其好处,但是while循环在一些场景下的效果比for循环要好

实操

i=1					//初始值
while (($i<=10))		//循环判断
do
	echo $i			
	((i++))			//使用(())进行自增,如果没有变化,就会死循环
done

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

//这里曾经说过,let可以定义变量,这里也是对i进行一个自增,也是相当于赋值一样

image

image

另外,在进行输出的时候,位置不同,结果也是不同的

在循环体中的输出是在每一次遍历都输出

而在循环结束处输出是输出最终的结果的

image

posted @ 2024-11-21 23:09  whitehe  阅读(16)  评论(0)    收藏  举报  来源