shell编程系列(4)-循环结构
文章目录
- 前言
- for循环结构
- until循环结构
- while 循环结构
- 循环控制
- break 和 exit 退出循环
- continue 跳过本轮循环
前言
循环结构也是编程语言中必不可少的一部分,各类脚本语言、面向对象语言都有循环结构,并且循环结构的类别和使用都大差不差,所以我们掌握了一种之后,对于其他编程语言的循环结构也能很快熟悉。
shell语言中提供了三类循环结构,接下来我们逐个学习一下。
for循环结构
for循环结构是比较常见的,具体语法如下:
#!/bin/bash
# {1..5}代表生成1-5的数字序列,这里也可以是数组,或者某个命令的返回结果
for num in {1..5}
do
echo " the number is $num"
done
还有一种类似于C和Java的语法,如下:
#! /bin/bash
for (( i=1;i<5;i++))
do
echo " the number is $i"
done
看起来是不是和C语言里的for循环很相似呢
注意事项:
- for循环可以循环数组,数字序列,也可以是某个命令的返回结果(如果该命令返回的是一个数组,例如
ls
命令) - 类C的for循环中要注意是两个左右括号
until循环结构
until的循环语法如下:
#!/bin/bash
i=1
until [[ $i -gt 5 ]]
do
echo "the num is $i"
let i+=1
done
注意事项:
- 未指明类型的变量默认都是字符串类型,如果做数学运算需要加上
let
关键字
while 循环结构
while循环的语法如下:
#!/bin/bash
while [[ $i -lt 5 ]]
do
echo "the num is $i"
let i+=1
done
while
和 until
的区别:
while
是符合条件才进行循环,不符合条件时候就停止循环,而util
循环正好相反
循环控制
break 和 exit 退出循环
break
和exit
都可以退出当前的循环,不同的是 exit
除了退出循环外还可以指定一个返回值,例如:
#!/bin/bash
i=1
until [ $i -gt 5 ]
do
echo "the num is $i"
let i+=1
if [ $i -eq 3 ]
then
# 这里也可以使用break 或者直接exit不带返回码
exit 0
fi
done
continue 跳过本轮循环
continue
是跳过一次循环,直接开始下一次循环
#!/bin/bash
i=1
until [ $i -gt 5 ]
do
echo "the num is $i"
let i+=1
if [ $i -eq 3 ]
then
# 跳过当前i=3的循环
continue
fi
done