已复制
全屏展示
复制代码

linux最常用命令awk流程控制


· 2 min read

在 linux awk 的 while、do-while 和 for 语句中允许使用 break, continue 语句来控制流程走向,也允许使用 exit 这样的语句来退出。break 中断当前正在执行的循环并跳到循环外执行下一条语句。if 是流程选择用法。awk 中,流程控制语句,语法结构,与 c 语言类似。有了这些语句,其实很多 shell 程序都可以交给 awk,而且性能是非常快的。下面是各个语句用法。

一. 条件判断语句

if(表达式)  
    语句1
else
    语句2

格式中语句1可以是多个语句,为了方便判断和阅读,最好将多个语句用{}括起来。awk分枝结构允许嵌套,其格式为:

if(表达式)
    {语句1}
else if(表达式)
    {语句2}
else
    {语句3}

每条命令语句后面可以用;分号结尾。示例:

awk  ' BEGIN{
test=100;
if(test>90){  
    print "very good";  
    }
else if(test>60){
    print "good";  
    }
else{
    print "no pass";  
}
}  '

或者将单引号内(不包括单引号)保存为文件iffile.txt,然后执行

# awk  -f  iffile.txt
very good

二. while语句

while(表达式)
    {语句}

示例:

# awk 'BEGIN{
test=100;
total=0;
while(i<=test){ total+=i; i++; } print total; }' 5050

三. for循环

3.1 格式1

for(变量 in 数组)
    {语句}

示例:

awk 'BEGIN{
for(k in ENVIRON){
    print k"="ENVIRON[k];
    }
}'

TERM=linux
pwd=/root/text
logname=root
HOME=/root
SSH_CLIENT=192.168.1.21 53087 22

:ENVIRON是awk常量数组,保存了系统的环境变量,通过这种方式获取值:ENVIRON[PATH],这就是获取PATH的值

3.2 格式2

for(变量;条件;表达式)
    {语句}

示例:

awk  'BEGIN{
total=0;
for(i=0;i<=100;i++){ total+=i; } print total; }' 5050

四. do循环

do{语句} 
while(条件)

例子:

awk 'BEGIN{
total=0;
i=0;
do {
    total+=i;
    i++;
    }
while(i<=100) print total; }' 5050
🔗

文章推荐