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