如何在 Shell 脚本中使用 Break 和 Continue 语句

系统 Linux
在本文中,我们将了解如何在 bash 脚本中使用 break 和 continue 。

在本文中,我们将了解如何在 bash 脚本中使用 break 和 continue 。在 bash 中,我们有三个主要的循环结构(for、while、until)。break 和 continue 语句是 bash 内置的,用于改变循环的流程。这种 break 和 continue 的概念在流行的编程语言(如 Python )中可用。

linuxmi@linuxmi:~/www.linuxmi.com$ type -a break continue
break shell 内建
continue shell 内建

Bash 内置命令

使用 Break 语句退出循环

break 语句将退出循环,并将控制传递给循环中的下一个语句。您可以运行 help 命令来获取有关 break 语句的一些信息。

linuxmi@linuxmi:~/www.linuxmi.com$ help break
break: break [n]
退出 for、while until 循环

退出一个 FOR、WHILE UNTIL 循环。如果指定了N,则跳出N重
循环

退出状态:
退出状态为0除非 N 不大于或等于 1

Break 帮助命令

break 的基本语法。

$ break [n]

n 是可选的

看看下面的例子。这是一个简单的 for 循环,它以 2 的增量步长迭代从 1 到 20 的值范围。条件语句将计算表达式,当表达式为 true 时($val = 9),它将运行 break 语句并且循环将终止,跳过剩余的迭代。

#!/usr/bin/bash
# Linux迷 www.linuxmi.com

for val in {1..20..2}
do
if [[ $val -eq 9 ]]
then
break
else
echo "打印 ${val}"
fi
done

break 语句

使用 continue 语句跳过迭代

如果不想完全退出循环而是在满足某个条件时跳过代码块怎么办?这可以通过 continue 语句来完成。continue 语句会在满足某个条件时跳过代码块的执行,将控制权交还给循环语句进行下一次迭代。

访问帮助:

linuxmi@linuxmi:~/www.linuxmi.com$ help continue
continue: continue [n]
继续 for、while until 循环。

继续当前 FOR、WHILE UNTIL 循环的下一步。
如果指定了 N, 则继续当前的第 N 重循环。

退出状态:
退出状态为 0 除非 N 不大于或等于1

continue 帮助

看看下面的例子。这与我们用来演示 break 语句的示例相同。现在,当 Val 的计算结果为 9 时,continue 语句将跳过所有剩余的代码块,并将控制权传递给 for 循环以进行下一次迭代。

#!/usr/bin/bash
# Linux迷 www.linuxmi.com

for val in {1..20..2}
do
if [[ $val -eq 9 ]]
then
continue
else
echo "打印 ${val}"
fi
done

continue 声明

如果你了解 Python,那么 break 和 continue 的行为在 Python 中也是一样的。但是 Python 提供了一种称为 pass 的循环控制语句。

Pass 就像一个 null 语句,解释器会读取它但不会执行任何操作。它只是导致没有操作。Bash 没有提供类似的语句,但我们可以使用 true 关键字或冒号 (:)来模拟这种行为。true 和冒号都是 shell 内置的,不执行任何操作。

linuxmi@linuxmi:~/www.linuxmi.com$ type -a : true
: shell 内建
true shell 内建
true /usr/bin/true
true /bin/true

True 和 Colon Shell 内置

看看下面的例子。当条件语句被评估为true($val = 9)时,true语句将不执行任何操作,循环将继续。

#!/usr/bin/bash
# Linux迷 www.linuxmi.com

for val in {1..20..2}
do
if [[ $val -eq 9 ]]
then
true
fi
echo "打印 ${val}"
done

Pass 声明

责任编辑:赵宁宁 来源: Linux迷
相关推荐

2021-03-14 09:28:24

Linux Shell脚本

2022-10-09 10:18:44

LinuxShell脚本

2011-08-23 09:56:52

UnicodeLua

2023-11-01 13:32:42

Go代码

2022-11-23 08:14:42

bash 脚本test 命令

2011-08-25 13:22:40

CEGUILua脚本

2011-08-25 09:55:27

2023-10-18 16:30:50

2025-01-20 08:40:00

Python对象

2022-03-30 09:32:32

BashtestLinux

2009-07-21 14:38:08

Scalamatch表达式break和conti

2015-08-27 09:46:09

swiftAFNetworkin

2021-03-09 07:27:40

Kafka开源分布式

2022-06-23 08:00:53

PythonDateTime模块

2021-06-09 09:36:18

DjangoElasticSearLinux

2022-05-17 08:25:10

TypeScript接口前端

2011-08-10 09:31:41

Hibernateunion

2024-01-18 08:37:33

socketasyncio线程

2021-04-21 08:03:34

脚本Shell读取

2021-08-20 10:46:25

Shell脚本文件Linux
点赞
收藏

51CTO技术栈公众号