zoukankan      html  css  js  c++  java
  • shell 条件结构之 if 语句使用总结

    文章目录


    #条件判断的格式
    [ exp ]
    [[ exp ]]
    test exp

    注意: exp 与 “[”、"]"括号之间必须要有空格,否则会报语法错误;

    1. [ exp ] 与 [[ exp ]]的区别,本文仅讨论[ exp ],而在[[ exp ]]模式下,额外支持指令,但是同样都需要空格;
    2. &&、|| 分别作为逻辑与、逻辑或的运算
    3. [[ 1 == 1 ]] 结果为真

    #条件判断的类型
    条件判断的类型有三种:整数判断,字符判断,文件判断

    条件逻辑表达式:
    -a : and 逻辑与
    -o : or 逻辑或
    ! : nor 逻辑非

    ##整数判断
    -eq #equal 相等
    -ne #not equal 不相等
    -gt #greater than 大于
    -lt #less than 小于
    -ge #greater or equal 大于或等于
    -le #less or equal 小于或等于

    ##字符判断
    -z #zero 当前字符串是否为空
    -n #not zero 当前字符串是否不为空
    == 两端字符串是否相等
    != 两端字符串是否不相等
    > 长度是否大于
    < 长度是否小于

    注意:“< ”与 “> ”做字符串比较的时候,在[ exp ] 情况下需要需要输入 “<” 或者 “>” 作为转义,或者使用 [[ > exp ]] 模式可以直接使用“< ”与 “> ”作为判断符号使用。

    
    STR1="HELLO"
    STR2="HELL"
    
    if [[ $STR1 > $STR2 ]];then
            echo "$STR1 > $STR2"
    fi
    
    if [ $STR1 > $STR2 ];then
            echo "$STR1 > $STR2"
    fi        
    

    ##文件判断
    -e #exit 判断文件是否存在
    -f #if file 判断是否是文件
    -d #dir 判断是否是路径
    -r 判断文件是否可读
    -w 判断文件是否可写
    -x 判断文件是否可执行
    -L 判断文件是否为符号链接

    #!/bin/bash
    MFILE=123.sh
    
    if [ -f $MFILE -a -x $MFILE ];then
            echo "$MFILE is ok"
    fi
    
    if [[ -f $MFILE && -x $MFILE ]];then
            echo "$MFILE is ok"
    fi
    

    ##条件判断基本结构

    if conditions;then
    statement1
    .......
    fi
    
    
    if conditions;then
    statement1
    else
    statement2
    fi
    
    
    if condition1; then
    statement1
    elif condition2 ; then
    statement2
    fi
    

    #总结

    条件判断主要有三种格式 test exp,[ exp ],[[ exp ]],其中前二者类似,本文主要讲了 [ exp ];exp 作为条件判断的表达式主要分为三类:

    • 数值比较的判断;
    • 文件类型的判断,包括文件类型,路径类型,读写执行属性等;
    • 字符串的比较;
    • exp 中比较重要的是运算符,通用运算符是逻辑运算符包括 -a,-o,!,而对于特定类型的判断,每一种判断类型的运算符都是相对独立使用,无法相互兼容。
  • 相关阅读:
    Android之旅 自我图示总结四大组件
    解决.NET 调用JAVA WEBService服务中文乱码问题
    【itercast OSI 七层网络模型 学习笔记】Layer 1 物理层
    用SDL库播放yuy2 Packed mode
    uva539 卡坦岛 简单回溯!
    Zookeeper CLI
    在安装ZooKeeper之前,请确保你的系统是在以下任一操作系统上运行
    Zookeeper leader选举
    Zookeeper 工作流
    ZooKeeper的架构
  • 原文地址:https://www.cnblogs.com/unclemac/p/12783424.html
Copyright © 2011-2022 走看看