欢迎,来自IP地址为:35.171.164.77 的朋友
本节,我们将学习如何在 Bash 脚本中使用 for while 以及 until 来设置循环。
循环对于编程语言来说是一个非强强大的功能,如果对于循环没有概念,可以想像成,在一定的条件下重复做同一件事。
例如我们想打印输出 1 到 100 的全部数字,我们当然可以使用 100 条 echo 命令来完成。这显然不够合理,因为我们 echo 输出数字的工作是重复操作的,只是每次输出的数字不同而以。于是我们就可以利用循环语句,通过改变输出数字值,从而实现使用少量代码来完成类似功能。
Bash 中支持三种类型的循环:
- For
- While
- Until
Bash 使用 For 循环
典型的 For 循环语法如下所示:
for arg in LIST; do commands done
这里的 LIST 可以是一个数组也可以是一组元素的列表。大括号”{}”可以在循环中用于指定元素列表。
我们演示一个非常简单的循环操作,按顺序打印1至10,使用 for 循环的脚本内容如下:
#!/usr/bin/bash for num in {1..10}; do echo $num done
上面的脚本, for 语句同样可以写成”for num in 1 2 3 4 5 6 7 8 9 10; do”,同样可以表示元素列表。但是使用大括号就显得简洁而精巧。
“{..}”的作用是扩展一个列表。”{d..h}”同样会被扩展成为”d e f g h”,此类形式使用也非常广泛。
PS:如果您对于 C 语言比较熟悉,那么也可以在 bash 脚本中使用类 C 的循环,格式如下所示:
for ((i = 0 ; i < 10 ; i++)); do echo $i done
同样,for 语言可以使用如下形式使用数组:
#!/usr/bin/bash distros=(Ubuntu Fedora Debian Alpine) for i in "${distros[@]}"; do echo $i done
脚本执行的结果会依次显示数组中的所有元素值。
Bash 使用 While 循环
While 循环会验证循环条件,当条件为真时,会一直执行循环体中的命令,直到条件为假是中止循环。使用格式如下所示:
while [ condition ]; do commands done
如果使用 While 循环重写上面的脚本,则脚本内容如下:
#!/usr/bin/bash num=1 while [ $num -le 10 ]; do echo $num num=$(($num+1)) done
如脚本内容所示,我们首先定义了一个变量”num”,并给其赋值为1,之后使用 while 循环,每次令 num 的值加1,直到 num 的值大于10时,因条件不满足而中止循环。
Bash 使用 Until 循环
Until 循环是使用的比较少的一种循环形式,它的行为与 while 比较类似,区别在于比较条件。Until 循环是检测循环条件为真是则结束循环,即循环条件为假时则执行循环,直到满足循环条件时则中止循环。
之前使用 While 编写的脚本如果使用 Until 循环,则需要修改为如下形式:
#!/usr/bin/bash num=1 until [ $num -gt 10 ]; do echo $num num=$(($num+1)) done
循环条件的作了相应的修改,其余内容保持一致。
了解了循环结构,就可以进一步深入学习 Bash 编程的函数功能 >>Bash 基础(九):Bash 使用函数<<
One thought on “Bash 基础(八):FOR WHILE UNTIL 循环”