第八节AWK报告生成器(7)

七,awk控制语句

作为一种程序设计语言,awk支持程序的流程控制,例如条件判断、循环以及其他的一些流程控制语
句,例如continue、break以及exit等。掌握这些基本的流程控制语句,对于编写出结构良好的程序非常重要。

7,1 if判断语句

if语句的功能是根据用户指定的条件来决定执行程序的哪个分支,其语法如下:

if (expression)
{
	statement1 
	statement..
} 
else 
{
	statementn
	statement..
}

示例

 awk -F: '{if ($i=="root") printf "%-10s %-15s\n", $1, "Admin"; else printf "%-10s %-15s\n",$1, "common user"}' /etc/passwd
7,2 while语句

while语句是另外一种常用的循环结构,其语法如下:

while (expression)
{
    statementl
    statement2
    ...
}

示例

awk 'BEGIN{whi1e(i<=100) {sum+=i;i++}print "sum=",sum}'
awk 'BEGIN;{N=0;while (++N <= 9)print N}'
7,3 for语句

for循环语句通常用在在循环次数已知的场合中,其语法如下:

for(expressionl; expression2; expressions)
{
statementl 
statement..
}

示例:

awk 'BEGIN {for(i=l;i<=100;i++){sum+=i;}print "sum=",sum}'
7,4 循环环中的控制
break

用户可以通过使用break语句在适当的时机退出for以及while等循环结构,而不必等到循环结构自己退出
示例:

awk 'BEGIN{for(n=0;nv=9;n++)if(n==4) break;else print n;print "hahah"}'
0
1
2
3
hahah
continue

continue语句的主要功能是跳过循环结构中该语句后面的尚未执行的语句。break语句与continue语句 的功能有着明显的区别,前者是直接退出循环结构,而后者是跳过循环体中尚未执行的语句,重新执行 下一次循环
示例:

awk 'BEGIN{for(n=0;n<=9;n++)if(n==4) continue ;else print n;pri nt "hahah"}' 
0 
1 
2 
3 
5 
6 
7 
8 
9 
hahah
next

next语句的功能与continue语句非常相似,但是next语句并不是用在循环结构中,而是用在整个awk程 序中。当awk执行程序时,如果遇到next语句,则提前结束对本行文本的处理,a wk会继续读取下一行
数据,并且从第一个模式及其操作开始执行。

awk -F : '{if($3%2==0) next;print $1,$3}' /etc/passwd 
bin 1 
adm 3 
sync 5 
halt 7 
operator 11 
tss 59
exit

exit语句的功能是终止awk程序的执行

awk 'BEGIN{for(n=0;n<=9;n++)if(n==4) exit ;else print n;print "hahah"}'
0 
1 
2 
3
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星鬼123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值