#36-1 仁王2 錯誤修正→雪月花3連擊增傷無法重置烈火BUFF持續時間
目录:
循环是编程语言的基本概念之一。 当您要运行一系列命令直到满足特定条件时,循环很方便。
在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循环就会迭代。 它将产生以下输出:
无限循环
无限循环是无限重复且永不终止的循环。 如果条件总是评估为真,则会出现无限循环。
在以下示例中,我们使用内置命令
:
始终返回true以创建无限循环。 您还可以使用
true
内置命令或任何其他始终返回true的语句。
上面的while循环将无限期地运行。 您可以通过按
这是单行等效项: while循环最常见的用法之一是逐行读取文件,数据流或变量。 在以下示例中,while循环将逐行读取
而不是使用条件控制while循环,我们使用输入重定向(
逐行读取文件时,请始终将
默认情况下,
break和continue语句可用于控制while循环的执行。 break语句终止当前循环,并将程序控制传递给终止循环之后的命令。 当满足特定条件时,通常用于终止循环。 在下面的示例中,一旦当前迭代项等于
Continue语句退出循环的当前迭代,并将程序控制传递给循环的下一个迭代。 在下面的代码中,一旦当前迭代的项目等于
到目前为止,您应该对如何使用bash while循环有一个很好的了解。
while: do echo "Press to exit." sleep 1 done
while: do echo "Press to exit." sleep 1 done
CTRL+C
终止循环。
while:; do echo 'Press to exit.'; sleep 1; done
while:; do echo 'Press to exit.'; sleep 1; done
逐行读取文件
/etc/passwd
文件并打印每一行。
file=/etc/passwd while read -r line; do echo $line done < "$file"
< "$file"
)将文件传递给
read
,这是控制循环的命令。 while循环将运行直到读取最后一行。
read
与
-r
选项一起使用,以防止反斜杠充当转义符。
read
命令会修剪前导/尾随空格字符(空格和制表符)。 在
read
命令之前使用
IFS=
选项可防止此行为
file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"
中断并继续声明
违约声明
2
,循环的执行将被中断。
i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'
继续声明
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!
结论







