您的位置:首页 > 运维架构 > Shell

awk 语法深入-判断循环语句

2016-08-22 20:00 387 查看
awk 判断与循环语句


    awk 作为一门语言,支持顺序、判断、循环三种语句。awk的这三种语句借鉴了C语言,可以控制程序的流程。

   条件语句有if/esle,循环语句有for循环、while循环、do/while循环。

 - if 语句 

   语法格式:

{

if(expression) {

statement;statement;...       # statement之间以分号隔开

}

}


eg.

awk 'BEGIN{print "if"}{if($1<$2) print $2 " is big"}' /etc/passwd


 -if/else 语句

 语法格式:

{

if(expression) {

statement;statement;...       # statement之间以分号隔开

}

else {

statement;statement;...

}

}


eg.

 awk 'BEGIN{print "if/else"}{if($1<$2) print $2 " is big";else print $1 " is big"}' /etc/passwd


  - if/else if语句

  提供条件分支语句的执行

 语法格式:

{

if(expression) {

statement;statement;...       # statement之间以分号隔开

}

else if(expression) {

statement;statement;...

}

else if(expression) {

statement;statement;...

}

...

else{

statement;statement;...

}

}


 解释:程序会从上到下依次对条件expression进行判断,一旦发现某个expression为真,立即执行紧跟的statements语句块。执行完后立刻退出整个if语句,而不去执行下面的expression判断。

     如果所有的expression都无法得到满足,则执行最后一个else语句块!

 循环是一种重复执行一个或多个操作的结构。

  - while循环

 语法: 条件表达式在循环顶进行部进行判断

while(condition){

action   # 循环体

}


 - do/while 循环
 语法: 循环体至少被执行一次,在代码块结尾处进行判断

 do {

     action

 }while(condition)


 - for 循环

 语法格式:等同于C语言的for循环

for(initial assignment;comparsion;increment ){

    coode block

}


eg. 

for( i = 1; i < 4; i++ ){

    print "iteration",i

}


  - break 和 continue

    break、continue 可用于影响程序的控制流。

  break 退出当前循环,不再继续执行循环体

  continue 终止当前循环,从循环的顶部提前进入新的循环

 注: continue 在while 和 for 循环不同之处在于,在for循环主体中使用时,continue将使循环控制变量自动增加!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  awk awk shell