在我们之前的教程中,我们学习了 shell脚本中的while循环. 现在,让我们利用 Linux 中的 break 和 continue 语句来操作循环流。 众所周知,如果提供给它的条件变为循环,则循环将结束 错误的. 但是,如果您运行的循环需要根据某些条件停止或跳过循环的其余部分,该怎么办? 这是使用 shell 脚本中的 break 和 continue 语句的地方。
Linux 中的 break 和 continue 语句有什么作用? break 语句在 中断语句 满足。 另一方面,continue 语句会在 继续声明 遇到了。
Linux Shell 脚本中的 break 语句
我们将首先了解如何跳出剩余迭代次数更多的循环。 我创建了一个应该循环 50 次的 while 循环。 但是,我添加了一个 if 语句,一旦第 25 个循环结束,就会执行 break 语句。
a=0 while [ $a -le 50 ] do echo Loop $a echo "Loop will break as soon as this is 25" if (($a==25)) then break fi ((a++)) done
我们将在接下来的教程中学习 if 语句,所以现在,您可以专注于习惯 break 语句。 注意循环是如何在第 25 个循环之后立即停止的。
正如我们之前提到的,break 语句将立即中断循环。 break 语句之后的任何内容都不会被执行。 让我们在这里做一个证明检查。 我将在上面脚本中的 if 条件之后添加一些 echo 语句。
a=0 while [ $a -le 50 ] do echo Loop $a echo "Loop will break as soon as this is 25" if (($a==25)) then echo "Breaking. Goodbye!" break fi echo "Still not broken" ((a++)) done
如您所见,即使我们在第 25 次迭代中中断了循环,但“仍然没有中断”的输出并没有打印在屏幕上,因为中断被放置在它之前。
如果您嵌套了循环,则 break 语句本身将仅中断执行它的循环。 要跳出所有循环,我们只需在 break 语句之后写下要跳出的循环数。
break N
所以如果你知道 break 语句嵌套在 3 层循环中 for >> while >> while >> break,您可以只说 break 3 来跳出所有循环,而不是仅执行 break 的最后一个 while 循环。
此功能在 Linux 中的 break 和 continue 语句中是相似的。
Linux Shell 脚本中的 continue 语句
在 Linux 中 break 和 continue 语句的用法是完全一样的。 不同之处在于它们在执行时的行为方式。 正如我们之前讨论的, continue 语句将重新启动循环,忽略循环中 continue 语句之后的所有内容。
这将使循环完成它应该完成的全部迭代次数。 它所要做的就是,对于某个条件,在 continue 语句之后跳过整个循环以重新开始循环。 让我们看看它的实际作用,以便更好地理解它。
a=0 while [ $a -le 50 ] do echo Loop $a echo "Loop will break as soon as this is 25" ((a++)) if (($a==25)) then echo "LET'S GO BACK TO THE START!" continue fi echo "Still executing" done
我在 if 语句之前移动了增量语句。 原因是如果我们把它放在之前的位置,变量在 25 之后永远不会增加,因为循环永远不会到达代码的那部分。
你看,在第 24 次迭代中, if 语句 被触发是因为变量在循环之前递增。
如果 continue 语句在嵌套循环内,我们只需要像对 break 语句所做的那样将参数传递给语句。
continue N
这里,N 是要跳出的循环数。 因此,如果有 2 个循环,包括执行 continue 语句的那个,我们就说 继续 2,两个循环都将重新启动。
结论
这应该是一个易于理解的简短教程,让您了解 Linux 中的 break 和 continue 语句是如何工作的。 如果您在理解变量方面需要帮助,请务必阅读我们的教程 变量 和 shell脚本中的数组. 我们将在即将发布的 Shell 脚本 101 系列中介绍 if 条件和 for 循环。