shell(7) for循环与while循环
声明
学习视频来自B站UP主 泷羽sec,如涉及侵泷羽sec权马上删除文章
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。
1.for循环
例子1
#! /bin/bash
for i in `seq 1 100` #是反引号
do
echo $i
done

for i in `seq 1 100`
seq 1 100 是一个命令,它会生成一个从 1 到 100 的数字序列。seq 命令的作用是根据给定的参数输出一个连续的数字序列。通过反引号` 包裹住 seq 1 100 ,表示将seq 命令的输出结果作为 for 循环的列表项,也就是说,$i 会依次取得从 1 到 100 的值。
例子2
#! /bin/bash
for i in $(seq 1 100)
do
echo $i
done

for i in $(seq 1 100)
$(...) 是命令替换的语法,它会运行seq 1 100命令并将输出结果传递给 for 循环。两个例子实现的功能一样。
例子3
#! /bin/bash
for ((i=1; i<101; i++))
do
echo $i
done

for ((i=1; i<101; i++))
for ((...)) 是 Bash 中的一种 C 风格的 for 循环,语法结构类似于 C 语言中的 for 循环。这种方法和前面实现功能一样,但更直接,通常在 Bash 脚本中也会更常用。
2.while循环
#! /bin/bash
i=1
while(($i<=10))
do
echo $i
((i++))
done

该代码利用while循环实现从1到10的输出
i=1是初始变量,while (( $i <= 10 ))while 关键字表示进入循环,循环条件是 (( $i <= 10 )),这是一个算术比较,判断变量 i 是否小于或等于 10。(( ... )) 是 Bash 中的算术扩展,表示数学运算。
do和done表示循环的开始和结束,((i++)) 是 Bash 中的算术增量操作。它会将变量 i 的值增加 1。
例子2
#! /bin/bash
i=1
while(($i<=10))
do
echo $i
let "i++"
done

和上面的区别只在let "i++",let 是 Bash 中用来执行算术操作的命令。let "i++" 会让 i 自增 1,相当于 i = i + 1 或者 ((i++))。
例子3
#! /bin/bash
i=100
while(($i>=10))
do
echo $i
((i++))
done

这是死循环,因为i始终大于10,所以会一直循环下去。
例子4

这个脚本会打印 100,然后停止循环。因为 while 循环的条件是 i <= 100,而在第一次循环后,i 被加 1 变为 101,导致循环条件不再成立,从而退出循环。
浙公网安备 33010602011771号