声明!
学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](https://space.bilibili.com/350329294)
目录
- for 循环
- 方法一:使用反引号执行命令
- 方法二:使用 $() 执行命令
- 方法三:C 风格的 for 循环
- while 循环
- 方法一:使用 (( )) 进行自增操作
- 方法二:使用 let 进行自增操作
1. for 循环
for
循环是 Shell 脚本中常用的控制结构,它可以用来重复执行一段代码,直到满足特定条件。下面介绍三种常见的 for
循环写法。
方法一:使用反引号执行命令
for i in `seq 1 10`
do echo $i
done
在这个例子中,seq 1 10
命令用于生成从 1 到 10 的数字序列。反引号 ` `
用于命令替换,将 seq 1 10
的输出(即 1 2 3 4 5 6 7 8 9 10
)传递给 for
循环。
每次循环时,变量 i
会依次取到这些数字,并通过 echo
命令打印输出。
方法二:使用 $()
执行命令
for i in $(seq 1 10)
doecho $i
done
这种写法与方法一的效果完全相同,区别在于使用了 $( )
语法来进行命令替换。$(seq 1 10)
会返回从 1 到 10 的数字序列,并将其作为循环的输入。
$()
是一种现代的命令替换语法,它在可读性和嵌套时比反引号更为清晰,因此推荐使用这种方式。
方法三:C 风格的 for
循环
for (( i=1; i<=10; i++ ))
do echo $i
done
在这种写法中,使用了 Shell 的 C 风格 for
循环语法。它的结构类似于其他编程语言中的 for
循环,其中:
i=1
初始化循环变量i
为 1。i<=10
是循环的条件,表示只要i
小于或等于 10,循环就会继续执行。i++
是每次循环后让i
自增 1。
这种写法适用于需要更灵活控制循环变量的场景,且语法更接近其他编程语言。
2. while 循环
while
循环会在给定的条件为 true
时一直执行,直到条件不再满足为止。下面介绍两种常见的 while
循环写法。
方法一:使用 (( ))
进行自增操作
i=1
while (( $i <= 10 ))
doecho $i(( i++ ))
done
- 变量初始化:首先通过
i=1
将变量i
初始化为 1,确定循环的起始值。 - 循环条件判断:
while (( $i <= 10 ))
是判断条件,(( ))
用于执行算术比较。每次循环时,都会检查i
是否小于或等于 10,若满足条件,则执行循环体。 - 循环体内容:在循环体内,使用
echo $i
输出当前的i
值,然后通过(( i++ ))
对变量i
进行自增操作。
(( ))
用于算术运算,i++
表示在每次循环结束时,i
的值自增 1。
方法二:使用 let
进行自增操作
i=1
while (( $i <= 10 ))
do echo $ilet "i++"
done
此方法与方法一非常相似,主要区别在于自增操作的实现方式:
let "i++"
是使用let
命令进行算术运算。let
用于对变量执行算术操作,在这里它的作用与(( ))
相同,都是将变量i
自增 1。
let
命令与 (( ))
语法相比,虽然功能等效,但在现代 Shell 脚本中,通常推荐使用 (( ))
语法,因为它更加简洁且易于理解。
总结
for
循环:适用于已知循环次数的场景,可以使用反引号、$()
或 C 风格语法来实现。while
循环:适用于条件满足时重复执行的场景,可以通过(( ))
或let
来进行自增操作。