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

一、IF 语句

        IF 条件语句语法格式

#方式一:
if (condition)
      action
#方式二:使用花括号语法格式
if (condition)
{
      action1;
      action2;
...
}
{if(表达式){语句1;语句2;...}}

        IF 语句实例

#判断数字是奇数还是偶数
[root@localhost ~]# awk 'BEGIN {num =10; if (num % 2 ==0) printf "%d 是偶数\n",num}'
10 是偶数


#统计系统用户数
[root@localhost ~]# awk -F: '{if($3>0 && $3<1000){count++;}} END{print count
}' /etc/passwd
19

#判断 root 是不是 administrator
[root@localhost ~]# awk -F: '{if($3==0) {print $1 " is administrator."}}' /etc/passwd
root is administrator.


Shell三剑客:awk(awk编辑编程)二_第1张图片 

二、IF - ELSE 语句

        IF - ELSE 条件语句语法格式

#方式一:
if (condition)
    action1
else
    action2

#方式二:使用花括号语法格式
{if (condition)
{
      action1;
      action2;
       ...
}
else
{
       action1;
       action2;
       ...
}}
{if(表达式){语句1;语句2;...}else{语句1;语句2;...}} 

        IF - ELSE 语句实例

#判断数字是奇数还是偶数
[root@localhost ~]# awk 'BEGIN {
> num =11;
> if(num % 2 ==0) printf "%d 是偶数\n",num;
> else printf "%d 是奇数\n",num
> }'
11 是奇数

#判断用户为root就打印用户名否则打印shell类型
[root@localhost ~]# awk -F: '{if($3==0){print $1} else {print $7}}' /etc/passwd
root
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/bin/sync
/sbin/shutdown
/sbin/halt

#统计管理员数量和系统用户数量
[root@localhost ~]# awk -F: '{if($3==0){count++} else{i++}} END{print "管理 员个数:"count;print "系统用户数:"i}' /etc/passwd
管理员个数:1
系统用户数:36

 

Shell三剑客:awk(awk编辑编程)二_第2张图片 

三、IF - ELSE - IF 语句

        IF - ELSE - IF条件语句语法格式

{if (condition1)
{
    action1;
    action2;
    ...
}
else if (condition2)
{
    action1;
    action2;
    ...
}
else if (condition3)
{
    action1;
    action2;
    ...
}
else
{
    action1;
    action2;
    ...
}}
{if(表达式1){语句1;语句2;...}else if(表达式2){语句1;语句2;...}else if(表达式3){语句1;语句2;...}else{语句1;语句2;...}}

        IF - ELSE - IF 语句实例

#多级判断结果
[root@localhost ~]# awk 'BEGIN {
> a=30
> if (a==10)
>  print "a=10";
> else if (a==20)
>  print "a=20";
> else if (a==30)
>  print "a=30";
> }'
a=30

#统计管理员,系统,普通用户数量
[root@localhost ~]# awk -F: '{if($3==0){i++} else if($3>999){K++} else{j++}}
END {print "管理员个数:"i; print "普通用户个数:"k; print "系统用户:"j}' /etc/passwd
管理员个数:1
普通用户个数:
系统用户:19

Shell三剑客:awk(awk编辑编程)二_第3张图片 

 

 

 

 

 

你可能感兴趣的:(Shell,linux,bash,shell)