安卓系统

重击while循环

#36-1 仁王2 錯誤修正→雪月花3連擊增傷無法重置烈火BUFF持續時間

#36-1 仁王2 錯誤修正→雪月花3連擊增傷無法重置烈火BUFF持續時間

目录:

Anonim

循环是编程语言的基本概念之一。 当您要运行一系列命令直到满足特定条件时,循环很方便。

在Bash等脚本语言中,循环对于自动执行重复性任务很有用。 Bash脚本中有3种基本的循环构造,分别是for循环,while循环和直到循环。

本教程介绍了Bash中while循环的基础,以及break和continue语句以更改循环的流程。

重击而循环

while循环用于执行给定命令集的次数未知,只要给定条件的值为真即可。

Bash while循环采用以下形式:

while do done

在执行命令之前先评估条件。 如果条件评估为真,则执行命令。 否则,如果条件的计算结果为false,则循环将终止,程序控制将传递给随后的命令。

在下面的示例中,循环在每次迭代时打印变量 i 的当前值,并将变量加1。

i=0 while do echo Number: $i ((i++)) done

只要 i 小于或等于2,Tue循环就会迭代。 它将产生以下输出:

Number: 0 Number: 1 Number: 2

无限循环

无限循环是无限重复且永不终止的循环。 如果条件总是评估为真,则会出现无限循环。

在以下示例中,我们使用内置命令 : 始终返回true以创建无限循环。 您还可以使用 true 内置命令或任何其他始终返回true的语句。

while: do echo "Press to exit." sleep 1 done while: do echo "Press to exit." sleep 1 done

上面的while循环将无限期地运行。 您可以通过按 CTRL+C 终止循环。

这是单行等效项:

while:; do echo 'Press to exit.'; sleep 1; done while:; do echo 'Press to exit.'; sleep 1; done

逐行读取文件

while循环最常见的用法之一是逐行读取文件,数据流或变量。

在以下示例中,while循环将逐行读取 /etc/passwd 文件并打印每一行。

file=/etc/passwd while read -r line; do echo $line done < "$file"

而不是使用条件控制while循环,我们使用输入重定向( < "$file" )将文件传递给 read ,这是控制循环的命令。 while循环将运行直到读取最后一行。

逐行读取文件时,请始终将 read -r 选项一起使用,以防止反斜杠充当转义符。

默认情况下, read 命令会修剪前导/尾随空格字符(空格和制表符)。 在 read 命令之前使用 IFS= 选项可防止此行为

file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"

中断并继续声明

break和continue语句可用于控制while循环的执行。

违约声明

break语句终止当前循环,并将程序控制传递给终止循环之后的命令。 当满足特定条件时,通常用于终止循环。

在下面的示例中,一旦当前迭代项等于 2 ,循环的执行将被中断。

i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'

Number: 0 Number: 1 All Done!

继续声明

Continue语句退出循环的当前迭代,并将程序控制传递给循环的下一个迭代。

在下面的代码中,一旦当前迭代的项目等于 2 则continue语句将使执行返回到循环的开头并继续下一次迭代。

i=0 while do ((i++)) if]; then continue fi echo "Number: $i" done echo 'All Done!'

Number: 1 Number: 3 Number: 4 Number: 5 All Done!

结论

到目前为止,您应该对如何使用bash while循环有一个很好的了解。

bash循环终端