目录
- 引言
- 流程控制概述
- if 条件判断
- case 语句
- 循环控制
- 5.1 for 循环
- 5.2 while 循环
- 5.3 until 循环
- 跳转控制语句
- 6.1 break
- 6.2 continue
- 总结
- 参考资料
1. 引言
在 Shell 编程中,流程控制用于决定脚本的执行路径。流程控制包括条件判断、循环语句以及跳转语句等,它们帮助我们根据不同的条件和需求执行不同的代码块。掌握这些语句对于编写高效的 Shell 脚本至关重要。
2. 流程控制概述
Shell 中的流程控制结构通常分为三类:
- 条件判断:根据条件表达式判断是否执行某段代码。
- 循环控制:用于重复执行某段代码,直到满足退出条件。
- 跳转控制:用于跳过当前循环或终止某个循环。
3. if 条件判断
if
语句用于执行条件判断。它根据表达式的真假来决定是否执行指定的代码块。
语法
if [ 条件 ]; then
# 条件为真时执行的代码
elif [ 另一条件 ]; then
# 第二个条件为真时执行的代码
else
# 如果没有条件为真,则执行此部分
fi
示例
#!/bin/bash
num=10
if [ $num -gt 5 ]; then
echo "数字大于5"
elif [ $num -eq 5 ]; then
echo "数字等于5"
else
echo "数字小于5"
fi
4. case 语句
case
语句用于多重选择判断,类似于其他编程语言中的 switch
语句。它通过匹配模式来执行不同的代码块。
语法
case $变量 in
模式1)
# 执行语句
;;
模式2)
# 执行语句
;;
*)
# 默认执行语句
;;
esac
示例
#!/bin/bash
echo "请输入数字"
read num
case $num in
1)
echo "你输入的是1"
;;
2)
echo "你输入的是2"
;;
*)
echo "你输入的是其他数字"
;;
esac
5. 循环控制
循环语句用于重复执行某段代码,直到满足特定条件为止。Shell 支持三种类型的循环:for
循环、while
循环和 until
循环。
5.1 for 循环
for
循环用于对指定的列表(如数字范围、数组等)中的元素进行逐一遍历。
语法
for 变量 in 值1 值2 值3; do
# 循环体
done
示例
#!/bin/bash
for i in 1 2 3 4 5; do
echo "当前数字是: $i"
done
数字范围
#!/bin/bash
for i in {1..5}; do
echo "当前数字是: $i"
done
5.2 while 循环
while
循环用于在条件为真时重复执行代码块。
语法
while [ 条件 ]; do
# 循环体
done
示例
#!/bin/bash
num=1
while [ $num -le 5 ]; do
echo "当前数字是: $num"
num=$((num + 1))
done
5.3 until 循环
until
循环与 while
循环相反,它会在条件为假时执行循环。
语法
until [ 条件 ]; do
# 循环体
done
示例
#!/bin/bash
num=1
until [ $num -gt 5 ]; do
echo "当前数字是: $num"
num=$((num + 1))
done
6. 跳转控制语句
跳转控制语句可以用来提前终止循环或跳过当前循环的某一次迭代。
6.1 break
break
用于终止当前循环,并跳出循环结构。
示例
#!/bin/bash
for i in 1 2 3 4 5; do
if [ $i -eq 3 ]; then
break
fi
echo "当前数字是: $i"
done
输出:
当前数字是: 1
当前数字是: 2
6.2 continue
continue
用于跳过当前循环的剩余部分,继续下一次迭代。
示例
#!/bin/bash
for i in 1 2 3 4 5; do
if [ $i -eq 3 ]; then
continue
fi
echo "当前数字是: $i"
done
输出:
当前数字是: 1
当前数字是: 2
当前数字是: 4
当前数字是: 5
7. 总结
Shell 脚本中的流程控制是编程的核心部分,它帮助我们决定程序执行的路径。掌握 if
语句、case
语句、循环语句(如 for
、while
、until
)以及跳转控制语句(如 break
和 continue
)对于编写高效、灵活的脚本至关重要。
发表回复