zoukankan      html  css  js  c++  java
  • shell条件测试

     

     
    格式1:[ 测试表达式 ]   #在单个中括号的测试格式中,前后需要有空格,在运算符 = 和 != 的两边也要有空格。
    格式2:[[ 测试表达式 ]]   #ubuntu中测试[[ 2 < 1 ]] && echo 1 || echo 0 运算符和测试表达式前后也需要有空格
     
    说明
    1. 格式2是扩展的测试命令。在 [[ ]] 中可以使用通配符进行模式匹配,以及&&,||,>,< 等操作符都行,但不能用于[ ]中;
    2. ubuntu测试中,在格式1,2中,表达式前后都需要有空格,在运算符 = 和 != 以及>  < 的两边也要有空格。
    3. 对整数进行关系运算,也可以用shell 的算数运算符(( ))
     
     

    1. 常用文件测试操作符

     

    例子1.  [[ -f file && -d folder ]] && echo 1 || echo 0   单括号里面不支持&&这种格式,可以用[ -f file -a -d folder ]来替代,其中的-a就相当于&&,-o相当于 || 

                所以上例可以改写为 [ -f file -a -d folder ] && echo 1 || echo 0

     

     

    2. 字符串测试操作符,用[ ]比较好
     -z "字符串“    表示若串长度为0,则为真
     -n "字符串”    表示若串长度不为0,则为真
    “串1” = “串2”    表示串1等于串2,则为真     
    “串1” != "串2“    表示若串1不等于串2,则为真      
     
    注意:
    1. ”$a” = “$b”中,等号的前面和后面必须要有空格,如果是 != 同理
    2. 字符串为了避免出错,统一加上双引号,而且$a和$b的引号中间不能有空格 
     
     
     
    3. 判断字符串长度的方法
      
    echo “$str”| awk '{print length($0)}'
    expr length “$str”
    echo “$str”| wc -c
    但是第三种得出的值会多1,可能是把结束符也计算在内了  
     
     
     
     
    4. 整数二元比较操作符

     

     

     

  • 相关阅读:
    k8s 部署springcloud
    Actuator 端点监控
    [转]再识Cortex-M3之堆栈
    ARM中R0-R15寄存器的作用
    Keil中 Program Size: Code RO-data RW-data ZI-data
    【浅说】堆(heap)和栈(stack)区别
    I2C的小结
    一个判断I2C总线通信异常原因的方法
    Linux输入子系统详解
    【转】完整精确导入Kernel与Uboot参与编译了的代码到Source Insight,Understand, SlickEdit
  • 原文地址:https://www.cnblogs.com/regit/p/8079424.html
Copyright © 2011-2022 走看看