
Bash 是一种功能强大的脚本语言,通常用于自动化和系统管理任务。流程控制是 Bash 脚本中重要的概念,它指的是脚本执行不同命令的条件。Bash 中的两个关键控制流语句是 break 和
continue,它可以帮助您控制代码的执行并使它更有效率。
What are Break and Continue in Bash?
break 和 continue 控制流语句,可用于改变循环或 switch 语句的流程。它们允许您根据特定条件退出循环或跳过某些迭代。
下面是 Bash 中 break 和 continue 如何工作的简要概述。
break 控制语句
当在循环或 switch 语句中使用时,break 将立即退出循环或 switch 语句,并从循环或 switch 语句后的下一个命令继续执行脚本。
continue 控制语句
当在循环中使用时,continue 将跳过当前迭代并继续到下一个迭代。换句话说,它允许您跳过基于特定条件的某些迭代。
Using Break in Bash
break 通常用于循环和 switch 语句中,在满足一定条件时退出循环或 switch 语句。
#!/bin/bash
for i in {1..10}
do
if [ $i -eq 5 ]
then
break
fi
echo $i
done
echo "Loop complete"
在这个例子中,我们有一个 for 循环,它将 i 的值从 1 迭代到 10。但是,我们添加了一个 if 语句来检查 i 是否等于 5。如果 i 等于 5,我们将使用 break 语句立即退出循环。
运行脚本,输出如下:
1
2
3
4
Loop complete
Using Continue in Bash
continue 在循环中使用,以根据特定条件跳过某些迭代。
#!/bin/bash
for i in {1..10}
do
if [ $i -eq 5 ]
then
continue
fi
echo $i
done
echo "Loop complete"
在这个例子中,我们有一个 for 循环,它将 i 的值从 1 迭代到 10。但是,我们添加了一个 if 语句来检查 i 是否等于 5。如果 i 等于 5,我们将使用 continue 语句跳过该迭代并继续进行下一个迭代。
运行脚本,输出如下:
1
2
3
4
6
7
8
9
10
Loop complete
Using Break and Continue in Switch Statements
除了循环,break 和 continue 也可以在 switch 语句中使用。
#!/bin/bash
case $1 in
start)
echo "Starting service"
;;
stop)
echo "Stopping service"
;;
restart)
echo "Restarting service"
;;
*)
echo "Invalid option"
break
;;
esac
echo "Switch statement complete"
在这个例子中,我们有一个 switch 语句来检查第一个命令行参数($1)的值。如果 $1 等于 start、stop 或 restart,它将执行相应的命令。如果 $1 不等于这些值中的任何一个,它将输出一条错误消息,并使用 break 语句退出 switch 语句。
运行脚本 ./myscript.sh invalid ,输出如下:
Invalid option
Switch statement complete
下面是如何在 switch 语句中使用 continue 的示例。
#!/bin/bash
case $1 in
start)
echo "Starting service"
;;
stop)
echo "Stopping service"
;;
restart)
echo "Restarting service"
;;
*)
continue
;;
esac
echo "Switch statement complete"
在本例中,我们修改了前面的脚本,使用 continue 语句而不是 break 语句。如果 $1 不等于任何预期的值,脚本将直接跳过 switch 语句的迭代并继续进行下一个迭代。
运行脚本 ./myscript.sh invalid ,输出如下:
Switch statement complete
