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. 整数二元比较操作符

     

     

     

  • 相关阅读:
    箭头函数和普通函数的区别是什么?
    前端如何优化网站性能?
    instanceof原理
    call、apply区别
    函数的节流和防抖
    关于this的指向性问题
    undefined 和null的区别?
    浅谈堆和栈的理解?
    关于vue中watch和computed
    简单说一下什么是回流和重绘
  • 原文地址:https://www.cnblogs.com/regit/p/8079424.html
Copyright © 2011-2022 走看看