Shell三剑客:awk(awk编辑编程)四

发布时间:2023年12月27日

一、Break 结束循环

????????Break 结束循环实例

  • break[n]:当第n次循环到来后,结束整个循环,n=0就是指本次循环
  • 当计算的和大于 50 的时候使用 break 结束循环:
[root@localhost ~]# 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 语句用于在循环体内部结束本次循环,从而直接进入下一次循环迭代。
  • Continue[n]:满足条件后,直接进行第n次循环,本次循环不在进行,n=0也就是提前结束本次循 环而直接进入下一轮
  • 输出 1 到 20 之间的偶数:
[root@localhost ~]# 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 结束脚本程序

????????Exit 结束脚本程序实例

  • Exit 用于结束脚本程序的执行。
  • 该函数接受一个整数作为参数表示 AWK 进程结束状态。 如果没有提供该参数,其默认状态为 0。
  • 当和大于 50 时结束 AWK 程序。
[root@localhost ~]# 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

[root@localhost ~]# echo $?    #检查脚本执行后的返回状态
10

?

?四、Next 停止处理

????????Next 停止处理实例

  • next:提前结束对本行的处理动作而直接进入下一行处理
[root@localhost ~]# awk -F: '{if($3%2!=0) next; print $1,$3}' /etc/passwd
root 0
daemon 2
lp 4
shutdown 6
mail 8
games 12
ftp 14
systemd-network 192
sshd 74
chrony 998
apache 48
tom 1000
Tom 1002
Jack 1004
opp 1008
qian 1010
huang 1012
kong 1014
duo 1016
ji 1018
han 1020

?

?

文章来源:https://blog.csdn.net/weixin_73783595/article/details/135256563
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。