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