Bash Continue 如何恢复循环
Bash 是一个流行的命令行界面 Shell,广泛应用于 Linux 和 Unix 操作系统。Bash 最实用的功能之一是循环执行,这允许您自动执行重复性任务。但是,有时您可能希望中断循环,然后稍后再继续。这时,Bash continue 语句就派上用场了。在本文中,我们将探讨如何使用 Bash continue 语句恢复循环。
什么是 Bash 循环?
在深入了解 Bash continue 语句之前,了解什么是 Bash 循环非常重要。循环是一种编程结构,允许您重复执行一段代码。在 Bash 中,有两种类型的循环:for 循环和 while 循环。 for 循环用于迭代一组值,而 while 循环用于在特定条件成立时重复执行代码块。
Bash continue 语句
Bash continue 语句用于跳过循环的当前迭代并继续执行下一次迭代。如果您想要跳过某些值,或者需要中断循环并稍后恢复,则此语句非常有用。continue 语句的语法如下:-
continue
当 Bash 遇到 continue 语句时,它会立即停止执行当前循环并继续执行下一次迭代。
在 for 循环中使用 Bash continue 语句
让我们看看如何在 for 循环中使用 Bash continue 语句。在本例中,我们将迭代一组值并跳过任何能被 2 整除的值 -
示例
for i in {1..10}
do
if (( i % 2 == 0 )); then
continue
fi
echo $i
done
在此示例中,我们使用 {1..10} 范围运算符来迭代 1 到 10 之间的值。在循环内部,我们使用模运算符来检查当前值是否可以被 2 整除。如果可以,则使用 continue 语句跳过当前迭代并继续执行下一次迭代。如果不能被 2 整除,则使用 echo 命令打印当前值。
输出
此脚本的输出结果为 −
1 3 5 7 9
如您所见,值 2、4、6、8 和 10 被跳过了,因为它们可以被 2 整除。
在 while 循环中使用 Bash Continue 语句
现在让我们看看如何在 while 循环中使用 Bash continue 语句。在本例中,我们将使用 while 循环迭代 1 到 10 的值,并跳过任何大于 5 的值 -
示例
i=1
while (( i <= 10 ))
do
if (( i > 5 )); then
(( i++ ))
continue
fi
echo $i
(( i++ ))
done
在此示例中,我们将变量 i 初始化为 1,并使用 while 循环遍历 1 到 10 之间的值。在循环内部,我们检查当前值是否大于 5。如果是,则使用 continue 语句跳过当前迭代并继续执行下一次迭代。我们还使用 (( i++ )) 命令来增加 i 的值。如果当前值不大于 5,则使用 echo 命令打印当前值。
输出
此脚本的输出为 −
1 2 3 4 5
如您所见,值为 6、7、
中断循环后继续执行
现在我们已经了解了如何使用 Bash continue 语句跳过循环的迭代,接下来让我们看看如何在中断循环后继续执行。根据具体情况,有几种方法可以做到这一点。
使用循环控制变量
中断循环后继续执行的一种方法是使用循环控制变量。循环控制变量是用来跟踪循环当前状态的变量。
示例
i=1
while (( i <= 10 ))
do
if (( i == 5 )); then
break
fi
echo $i
(( i++ ))
done
echo "Loop interrupted at i = $i"
while (( i <= 10 ))
do
echo $i
(( i++ ))
done
在此示例中,我们将变量 i 初始化为 1,并使用 while 循环迭代 1 到 10 的值。在循环内部,我们检查 i 的当前值是否等于 5。如果是,则使用 break 语句中断循环。然后,我们打印一条消息,指示循环在 i = 5 处中断。
循环中断后,我们使用另一个 while 循环从中断处继续迭代。我们只需从 i 的当前值开始循环,然后继续迭代,直到循环结束。
输出
此脚本的输出将是 −
1 2 3 4 Loop interrupted at i = 5 5 6 7 8 9 10
使用函数中断循环后恢复循环的另一种方法是使用函数。函数是一段可以重复调用的代码块。
示例
function myloop() {
for i in {1..10}
do
if (( i == 5 )); then
return $i
fi
echo $i
done
}
i=$(myloop)
echo "Loop interrupted at i = $i"
for (( j=$i; j<=10; j++ ))
do
echo $j
done
在本例中,我们定义了一个名为 myloop 的函数,其中包含一个 for 循环。在循环内部,我们检查 i 的当前值是否等于 5。如果是,则使用 return 语句中断循环并返回 i 的值。
循环中断后,我们调用 myloop 函数并将返回值存储在变量 i 中。然后,我们打印一条消息,指示循环在 i = 5 处中断。
最后,我们使用 for 循环从中断处继续迭代。我们将变量 j 初始化为 i 的值,并继续迭代直到循环结束。
输出
此脚本的输出为 −
1 2 3 4 Loop interrupted at i = 5 5 6 7 8 9 10
结论
Bash continue 语句是一个强大的工具,它允许您跳过循环的迭代并从中断处恢复循环。通过将 continue 语句与循环控制变量或函数结合使用,您可以以多种不同的方式中断和恢复循环。无论您是要自动执行重复性任务还是处理大量数据,Bash continue 语句都是任何 Bash 程序员的必备工具。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

