zoukankan      html  css  js  c++  java
  • shell中IF的用法介绍

    一、语法结构

    if [ condition ]
    then 
        statements 
    [elif condition 
        then statements. ..] 
    [else 
        statements ] 
    fi
    

    二、说明

    (1)[ condition ] (注意condition前后要有空格)
    非空返回true,可使用$?验证(0为true,>1为false) 如:[ hadoop ] 返回true
    空返回false 如:[  ] 返回false
    (2)[ condition ] && echo OK ||echo notok 可以多条件,条件满足,执行后面的语句

    三、整数比较

       -eq 等于,如:if [ "$a" -eq "$b" ]
        -ne 不等于,如:if [ "$a" -ne "$b" ]
        -gt 大于,如:if [ "$a" -gt "$b" ]
        -ge 大于等于,如:if [ "$a" -ge "$b" ]
        -lt 小于,如:if [ "$a" -lt "$b" ]
        -le 小于等于,如:if [ "$a" -le "$b" ]
         大于(需要双括号),如:(("$a" > "$b"))
        >= 大于等于(需要双括号),如:(("$a" >= "$b"))
        小数据比较可使用AWK #下一篇单独介绍awk数据处理
    

    四、字符串比较

       = 等于,如:if [ "$a" = "$b" ]
       == 等于,如:if [ "$a" == "$b" ],与=等价
       != 不等于,如:if [ "$a" != "$b" ]
       这个操作符将在[[]]结构中使用模式匹配.
       大于,在ASCII字母顺序下.如:
       if [[ "$a" > "$b" ]]
       if [ "$a" > "$b" ]
         注意:在[]结构中">"需要被转义.
       -z 字符串为"null".就是长度为0.
       -n 字符串不为"null"
    

    五、权限判断

    -r	有读的权限
    -w	有写的权限
    -x	有执行的权限
    

    六、文件系统类型判断

    -f	文件存在并且是一个常规的文件
    -s	文件存在且不为空
    -d	文件存在并是一个目录
    -b	文件存在并且是一个块设备
    -L	文件存在并且是一个软连接
    

    实例1 特权用户的高内存占用查询

    #!/bin/bash
    if [ root == `awk -F: '$3==0{print $1}' /etc/passwd ` ];then #>字符判断
            echo "Privileged user is root"  #>判断特权用户是否只有root
            echo "===================================/n======/n="
    else
            echo "Privileged users are not root" 
            exit 1
    fi
    
    ps aux > 123.txt
    if [ $? == 0 ] ;then
            echo "High memory occupancy analysis"
            echo "===================================/n======/n="
            awk '$4>="0.3"{print $1,$11}' 123.txt  #>这个$4的点自定义,这里虚拟机没吃内存厉害应用
            echo "---------------------end----------------"
            exit 1
    fi
    

    案例2 远程登录的用户的详情查询

    [root@server 桌面]# cat 123.sh 
    #!/bin/bash
    lsof -i :ssh |grep -v sshd > 123.txt
    if [ $? -eq 0 ];then
            echo "Display of users without remote login "
    	cat 123.txt
            exit 1
    else
            echo "Users without remote login"
    fi
    

    简书链接

  • 相关阅读:
    任意不规则形状的图片剪裁 .
    C#图片处理示例(裁剪,缩放,清晰度,水印)
    C#对图片文件的压缩、裁剪操作初探
    CSS和SVG中的剪切——clip-path属性和<clipPath>元素
    Java中继承thread类与实现Runnable接口的区别
    Android学习系列(7)--App轮询服务器消息
    Android学习系列(15)--App列表之游标ListView(索引ListView)
    Android学习系列(20)--App数据格式之解析Json
    Android学习系列(22)--App主界面比较
    Android学习系列(23)--App主界面实现
  • 原文地址:https://www.cnblogs.com/haozheyu/p/9919913.html
Copyright © 2011-2022 走看看