目录

  1. 引言
  2. 流程控制概述
  3. if 条件判断
  4. case 语句
  5. 循环控制
    • 5.1 for 循环
    • 5.2 while 循环
    • 5.3 until 循环
  6. 跳转控制语句
    • 6.1 break
    • 6.2 continue
  7. 总结
  8. 参考资料

1. 引言

在 Shell 编程中,流程控制用于决定脚本的执行路径。流程控制包括条件判断、循环语句以及跳转语句等,它们帮助我们根据不同的条件和需求执行不同的代码块。掌握这些语句对于编写高效的 Shell 脚本至关重要。


2. 流程控制概述

Shell 中的流程控制结构通常分为三类:

  1. 条件判断:根据条件表达式判断是否执行某段代码。
  2. 循环控制:用于重复执行某段代码,直到满足退出条件。
  3. 跳转控制:用于跳过当前循环或终止某个循环。

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 语句、循环语句(如 forwhileuntil)以及跳转控制语句(如 breakcontinue)对于编写高效、灵活的脚本至关重要。


8. 参考资料