Linux之awk条件语句和循环语句(五)
1.条件语句
1.1 IF 语句
IF 条件语句语法格式如下:
if (condition) action 或者使用花括号: if (condition) { action-1 action-1 . . action-n }
1.1.1 IF语句实例
[root@ecs-76840553 ~]# awk 'BEGIN {num = 10; if (num % 2 == 0) printf "%d 是偶数\n", num}' 10 是偶数 [root@ecs-76840553 ~]# awk 'BEGIN {num = 10; if (num % 2 == 0){ printf "%d 是偶数\n", num}}' 10 是偶数 [root@ecs-76840553 ~]#
1.2 IF-ELSE语句
1.2.1 IF-ELSE语法格式
if (condition) action-1 else action-2
1.2.1.1 IF-ELSE 实例
[root@ecs-76840553 ~]# awk 'BEGIN {num = 3; if (num % 2 == 0) {printf "%d 是偶数\n", num }else{printf "%d 是奇数\n", num}}' 3 是奇数 [root@ecs-76840553 ~]#
1.3 IF-ELSE IF语句
多个 IF - ELSE 格式的判断语句来实现多个条件的判断
1.3.1 实例
[root@ecs-76840553 ~]# awk 'BEGIN{num=10;if(num>10){print "num大于10"}else if(num<10){print "num小于10"}else if(num==10){print "num等于10"}}' num等于10 [root@ecs-76840553 ~]#
2.循环语句
2.1 for语句
2.1.1 for 循环语句语法
for (initialisation; condition; increment/decrement) action
for 语句首先执行初始化动作( initialisation ),然后再检查条件( condition )。如果条件为真,则执行动作( action ),然后执行递增( increment )或者递减( decrement )操作。只要条件为 true 循环就会一直执行。每次循环结束都会进条件检查,若条件为 false 则结束循环。
2.1.2 for 循环实例
[root@ecs-76840553 ~]# awk 'BEGIN{for(i=1;i<=5;i++){print i}}' 1 2 3 4 5 [root@ecs-76840553 ~]#
2.2 while 循环语句
2.2.1 while 循环语法
while (condition) action
While 循环首先检查条件 condition 是否为 true ,若条件为 true 则执行动作 action。此过程一直重复直到条件 condition 为 flase 才停止。
2.2.2 while 实例
[root@ecs-76840553 ~]# awk 'BEGIN{i=10;while(i>5){print i;i--}}' 10 9 8 7 6 [root@ecs-76840553 ~]#
2.3 break 语句
break用于结束循环语句
2.3.1 break 语句实例
[root@ecs-76840553 ~]# awk 'BEGIN{for(i=1;i<=5;i++){print i}}' 1 2 3 4 5 [root@ecs-76840553 ~]# awk 'BEGIN{for(i=1;i<=5;i++){print i;if(i==3)break;}}' 1 2 3 [root@ecs-76840553 ~]#
2.4 continue 语句
Continue 语句用于在循环体内部结束本次循环,从而直接进入下一次循环迭代。
2.4.1 continue 语句实例
[root@ecs-76840553 ~]# awk 'BEGIN{for(i=1;i<=5;i++){print i;print i}}' 1 1 2 2 3 3 4 4 5 5 [root@ecs-76840553 ~]# awk 'BEGIN{for(i=1;i<=5;i++){print i;if(i==3)continue;print i}}' 1 1 2 2 3 4 4 5 5 [root@ecs-76840553 ~]#
2.5 exit 语句
Exit 用于结束脚本程序的执行。
该函数接受一个整数作为参数表示 AWK 进程结束状态。 如果没有提供该参数,其默认状态为 0。
2.5.1 exit语句实例
[root@ecs-76840553 ~]# awk 'BEGIN{for(i=1;i<=5;i++){print i;if(i==3)exit(22);print i}}' 1 1 2 2 3 [root@ecs-76840553 ~]# echo $? 22 [root@ecs-76840553 ~]#