AWK - 循环
本章用合适的例子解释了 AWK 的循环。 循环用于以重复的方式执行一组动作。 只要循环条件为真,循环执行就会继续。
For循环
for 循环的语法是 −
语法
for (initialization; condition; increment/decrement) action
最初,for 语句执行初始化操作,然后检查条件。 如果条件为真,则执行动作,然后执行递增或递减操作。 只要条件为真,循环执行就会继续。 例如,以下示例使用 for 循环打印 1 到 5 −
示例
[jerry]$ awk 'BEGIN { for (i = 1; i <= 5; ++i) print i }'
在执行此代码时,您会得到以下结果 −
输出
1 2 3 4 5
While 循环
while 循环继续执行操作,直到特定逻辑条件评估为真。 这是 while 循环的语法 −
语法
while (condition) action
AWK首先检查条件; 如果条件为真,则执行动作。 只要循环条件评估为真,此过程就会重复。 例如,以下示例使用 while 循环打印 1 到 5 −
示例
[jerry]$ awk 'BEGIN {i = 1; while (i < 6) { print i; ++i } }'
在执行此代码时,您会得到以下结果 −
输出
1 2 3 4 5
Do-While 循环
do-while 循环类似于 while 循环,只是在循环结束时评估测试条件。 这是do-while循环的语法 −
语法
do action while (condition)
在 do-while 循环中,即使条件语句的计算结果为 false,action 语句也会至少执行一次。 例如,以下示例使用 do-while 循环打印 1 到 5 个数字 −
示例
[jerry]$ awk 'BEGIN {i = 1; do { print i; ++i } while (i < 6) }'
在执行此代码时,您会得到以下结果 −
输出
1 2 3 4 5
Break 语句
顾名思义,它是用来结束循环执行的。 这是一个在总和大于 50 时结束循环的示例。
示例
[jerry]$ awk 'BEGIN { sum = 0; for (i = 0; i < 20; ++i) { sum += i; if (sum > 50) break; else print "Sum =", sum } }'
在执行此代码时,您会得到以下结果 −
输出
Sum = 0 Sum = 1 Sum = 3 Sum = 6 Sum = 10 Sum = 15 Sum = 21 Sum = 28 Sum = 36 Sum = 45
Continue 语句
continue 语句用于循环内以跳到循环的下一次迭代。 当您希望跳过循环内某些数据的处理时,它很有用。 例如,以下示例使用 continue 语句打印 1 到 20 之间的偶数。
示例
[jerry]$ awk 'BEGIN { for (i = 1; i <= 20; ++i) { if (i % 2 == 0) print i ; else continue } }'
在执行此代码时,您会得到以下结果 −
输出
2 4 6 8 10 12 14 16 18 20
Exit 语句
用于停止脚本的执行。 它接受一个整数作为参数,该参数是 AWK 进程的退出状态代码。 如果没有提供参数,exit 返回状态零。 这是一个在总和大于 50 时停止执行的示例。
示例
[jerry]$ awk 'BEGIN { sum = 0; for (i = 0; i < 20; ++i) { sum += i; if (sum > 50) exit(10); else print "Sum =", sum } }'
输出
在执行此代码时,您会得到以下结果 −
Sum = 0 Sum = 1 Sum = 3 Sum = 6 Sum = 10 Sum = 15 Sum = 21 Sum = 28 Sum = 36 Sum = 45
让我们检查脚本的返回状态。
示例
[jerry]$ echo $?
在执行此代码时,您会得到以下结果 −
输出
10