zoukankan      html  css  js  c++  java
  • shell编程之if语句

    shell编程之if判断

    1.整数比较

    -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"))   
    >   大于(需要双括号),如:(("$a" > "$b"))   
    >=  大于等于(需要双括号),如:(("$a" >= "$b"))   
    

    2.字符串比较

    = 等于,如:if [ "$a" = "$b" ]   
    == 等于,如:if [ "$a" == "$b" ],与=等价   
    

    3.举例

    1.数字比较

    #!/bin/bash  
      
    i=6  
    a=10  
      
    if [ $a -eq 10 ]  
    then  
        echo "a = 10"  
    fi  
      
    if [ $a -ne $i ]  
    then  
        echo "a != $i"  
    fi  
      
    if [ $a -gt $i ]  
    then   
        echo "a > i"  
    fi  
      
    if [ $a -lt $i ]  
    then  
        echo "a < i"  
    else  
        echo "a > i"  
    fi  
      
    if(("$a" > "$i"))  
    then  
        echo "(())a>i"  
    fi  
      
    if(($a != $i))  
    then  
        echo "(())a!=i"  
    fi  
    

    2.字符串比较

    #!/bin/bash  
      
    a="123"  
    b="1234"  
    c="123"  
      
    if [ "$a"x != "$b"x ]  
    then  
        echo "a != b"  
    fi  
      
    if [ "$a"x = "$c"x ]  
    then  
        echo "a == c"  
    fi  
    

    4.Other

    -e                          文件存在
    -a                          文件存在(已被弃用)
    -f                          被测文件是一个regular文件(正常文件,非目录或设备)
    -s                          文件长度不为0
    -d                          被测对象是目录
    -b                          被测对象是块设备
    -c                          被测对象是字符设备
    -p                          被测对象是管道
    -h                          被测文件是符号连接
    -L                          被测文件是符号连接
    -S(大写)                    被测文件是一个socket
    -t                          关联到一个终端设备的文件描述符。用来检测脚本的stdin[-t0]或[-t1]是一个终端
    -r                          文件具有读权限,针对运行脚本的用户
    -w                          文件具有写权限,针对运行脚本的用户
    -x                          文件具有执行权限,针对运行脚本的用户
    -u                          set-user-id(suid)标志到文件,即普通用户可以使用的root权限文件,通过chmod +s file实现
    -k                          设置粘贴位
    -O                          运行脚本的用户是文件的所有者
    -G                          文件的group-id和运行脚本的用户相同
    -N                          从文件最后被阅读到现在,是否被修改
    
    f1 -nt f2                   文件f1是否比f2新
    f1 -ot f2                   文件f1是否比f2旧
    f1 -ef f2                   文件f1和f2是否硬连接到同一个文件
    
    二元比较操作符,比较变量或比较数字
    
    整数比较:
    -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" ))
    >                         大于(...)                    (( "$a" > "$b" ))
    > =                        大于等于(...)                (( "$a" >= "$b" ))
    
    
    
    字符串比较:
    =                         等于           if [ "$a" = "$b" ]
    ==                        与=等价
    !=                        不等于         if [ "$a" = "$b" ]
    <                         小于,在ASCII字母中的顺序:
                              if [[ "$a" < "$b" ]]
                              if [ "$a" < "$b" ]         #需要对<进行转义
    >                         大于
    
    -z                        字符串为null,即长度为0
    -n                        字符串不为null,即长度不为0
    
  • 相关阅读:
    谈谈C++新标准带来的属性(Attribute)
    金融数据智能峰会 | 数据规模爆炸性增长,企业如何进行精准决策?云原生数据仓库数据化运营实战分享
    核桃编程:前端可观测性建设之路
    AI和大数据结合,智能运维平台助力流利说提升核心竞争力
    Python静态类型解析工具简介和实践
    盛京剑客系列24:极简估值教程——题记
    Echarts——关系图(人民的名义为例,简化)源码
    UVA10020(最小区间覆盖)
    LA4636积木艺术
    LA4636积木艺术
  • 原文地址:https://www.cnblogs.com/nul1/p/12228700.html
Copyright © 2011-2022 走看看