zoukankan      html  css  js  c++  java
  • shell 比较判断

    引用自:

    http://www.tsnc.edu.cn/default/tsnc_wgrj/doc/abs-3.9.1_cn/html/comparison-ops.html

    Shell代码  收藏代码
    1. #! /bin/sh  
    2. var1=20  
    3. var2=21  
    4. if [ $var1 -ne $var2 ];then  
    5.   echo "1. -ne means NOT equal true"  
    6. fi  
    7.   
    8. xyz="11"  
    9. if [ -n "$xyz" ];then  
    10.   echo "2. -n means init true(MUST to use \"\")"  
    11. fi  
    12.   
    13. if [ -z "$1" ];then  
    14.   echo "3. -z means NOT command-line arguments true"  
    15. fi  
    16.   
    17. file="/etc/mtab"  
    18. if [ -e $file ];then  
    19.   echo "4. -e means file exists true"  
    20. fi  
    21.   
    22. home="/root"  
    23. if [ -d $home ];then  
    24.   echo "5. -d means dir exists true"  
    25. fi  
    26.   
    27. "true" ] && [ "false" ] && [ 0 ] && [ 1 ] && [ -1 ] && echo "6. string and integer means true"  
     

    二元比较操作符用来比较两个变量或数字. 注意整数比较与字符串比较的区别.

    整数比较

    -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" ]

    =等价.

    Note

    ==比较操作符在双中括号对和单中括号对中的行为是不同的.

      1 [[ $a == z* ]]    # 如果$a以"z"开头(模式匹配)那么结果将为真
      2 [[ $a == "z*" ]]  # 如果$a与z*相等(就是字面意思完全一样), 那么结果为真.
      3 
      4 [ $a == z* ]      # 文件扩展匹配(file globbing)和单词分割有效. 
      5 [ "$a" == "z*" ]  # 如果$a与z*相等(就是字面意思完全一样), 那么结果为真. 
      6 
      7 # 感谢, Stephane Chazelas
    !=

    不等号

    if [ "$a" != "$b" ]

    这个操作符将在[[ ... ]]结构中使用模式匹配.

    <

    小于, 按照ASCII字符进行排序

    if [[ "$a" < "$b" ]]

    if [ "$a" \< "$b" ]

    注意"<"使用在[ ]结构中的时候需要被转义.

    >

    大于, 按照ASCII字符进行排序

    if [[ "$a" > "$b" ]]

    if [ "$a" \> "$b" ]

    注意">"使用在[ ]结构中的时候需要被转义.

    参考例子 26-11, 这个例子展示了如何使用这个比较操作符.

    -z

    字符串为"null", 意思就是字符串长度为零

    -n

    字符串不为"null".

    Caution

    -n使用在中括号中进行条件测试的时候, 必须要把字符串用双引号引用起来. 如果采用了未引用的字符串来使用! -z, 甚至是在条件测试中括号(参见例子 7-6)中只使用未引用的字符串的话, 一般也是可以工作的, 然而, 这是一种不安全的习惯. 习惯于使用引用的测试字符串才是正路.


  • 相关阅读:
    java集合部分原材料
    java--Collection继承结构图
    java--类与类之间的关系
    java--BigDecimal类
    java--生成随机数
    java--枚举类型
    java--数字格式化
    Java--包装类型
    Java--StringBuffer和StringBuilder
    Java--String
  • 原文地址:https://www.cnblogs.com/yuzaipiaofei/p/4124251.html
Copyright © 2011-2022 走看看