shell--[重要]字符串是否相等, 字符串是否为空

系统 1588 0

一. 字符串是否相等.

    
      建议用
      
if [[ "${str1}" == "${str2}" ]]

    
      if [ "${str1}" = "${str2}" ]
    
  
    
      
注意: == left and right has space!
      str1=
      
        ""
      
      
        

str2
      
      =
      
        

str3
      
      =
      
        "
      
      
        hello
      
      
        "
      
      
        

str4
      
      =
      
        "
      
      
        world
      
      
        "
      
      
# true if [[ " ${str1} " == " ${str2} " ]]; then echo " 12 true " else echo " 12 false " fi
# false if [[ " ${str1} " == " ${str3} " ]]; then echo " 13 true " else echo " 13 false " fi
# false if [[ " ${str3} " == " ${str4} " ]]; then echo " 34 true " else echo " 34 false " fi
# false # str5未声明
if [[ " ${str3} " == " ${str5} " ]]; then echo " 35 true " else echo " 35 false " fi

 

 

单个[]也是正确的

      str1=
      
        ""
      
      
        

str2
      
      =
      
        

str3
      
      =
      
        "
      
      
        hello
      
      
        "
      
      
        

str4
      
      =
      
        "
      
      
        world
      
      
        "
      
      
        



# 
      
      
        true
      
      
        if
      
       [ 
      
        "
      
      
        ${str1}
      
      
        "
      
       = 
      
        "
      
      
        ${str2}
      
      
        "
      
       ]; 
      
        then
      
      
        echo
      
      
        "
      
      
        12 true
      
      
        "
      
      
        else
      
      
        echo
      
      
        "
      
      
        12 false
      
      
        "
      
      
        fi
      
      
        



# 
      
      
        false
      
      
        if
      
       [ 
      
        "
      
      
        ${str1}
      
      
        "
      
       = 
      
        "
      
      
        ${str3}
      
      
        "
      
       ]; 
      
        then
      
      
        echo
      
      
        "
      
      
        13 true
      
      
        "
      
      
        else
      
      
        echo
      
      
        "
      
      
        13 false
      
      
        "
      
      
        fi
      
      
        



# 
      
      
        false
      
      
        if
      
       [ 
      
        "
      
      
        ${str3}
      
      
        "
      
       = 
      
        "
      
      
        ${str4}
      
      
        "
      
       ]; 
      
        then
      
      
        echo
      
      
        "
      
      
        34 true
      
      
        "
      
      
        else
      
      
        echo
      
      
        "
      
      
        34 false
      
      
        "
      
      
        fi
      
      
        



# 
      
      
        false
      
      
        

# str5未声明


      
      
        if
      
       [ 
      
        "
      
      
        ${str3}
      
      
        "
      
       = 
      
        "
      
      
        ${str5}
      
      
        "
      
       ]; 
      
        then
      
      
        echo
      
      
        "
      
      
        35 true
      
      
        "
      
      
        else
      
      
        echo
      
      
        "
      
      
        35 false
      
      
        "
      
      
        fi
      
    

 

 

 

二. 字符串是否为空.

    
      
        建议用
        
if [ "${str1}" == "" ]

if [[ "${str1}" == "" ]]
      
        if
      
       [ 
      
        "
      
      
        $str
      
      
        "
      
       =  
      
        ""
      
      
         ] 


      
      
        if
      
       [ x
      
        "
      
      
        $str
      
      
        "
      
       =
      
         x ]


      
      
        if
      
       [ -z 
      
        "
      
      
        $str
      
      
        "
      
       ] (-
      
        n 为非空)

注意:都要代双引号,否则有些命令会报错



建议用:
      
    
      if [ "$str" =  "" ] 
      

      if [[ "${str1}" == "" ]]
    

 

例子

      str1=
      
        ""
      
      
        

str2
      
      =
      
        

str3
      
      =
      
        "
      
      
        hello
      
      
        "
      
      
        

str4
      
      =
      
        "
      
      
        world
      
      
        "
      
      
        



# 以下都输出empty

# $str5不存在, 也是empty




      
      
        if
      
       [ 
      
        "
      
      
        $str1
      
      
        "
      
       = 
      
        ""
      
       ]; 
      
        then
      
      
        echo
      
      
        "
      
      
        empty
      
      
        "
      
      
        fi
      
      
        if
      
       [ 
      
        "
      
      
        $str2
      
      
        "
      
       = 
      
        ""
      
       ]; 
      
        then
      
      
        echo
      
      
        "
      
      
        empty
      
      
        "
      
      
        fi
      
      
        if
      
       [ 
      
        "
      
      
        $str5
      
      
        "
      
       == 
      
        ""
      
       ]; 
      
        then
      
      
        echo
      
      
        "
      
      
        empty
      
      
        "
      
      
        fi
      
      
        if
      
       [ -z 
      
        "
      
      
        $str5
      
      
        "
      
       ]; 
      
        then
      
      
        echo
      
      
        "
      
      
        empty
      
      
        "
      
      
        fi
      
      
        if
      
       [[ $str5 == 
      
        ""
      
       ]]; 
      
        then
      
      
        echo
      
      
        "
      
      
        empty
      
      
        "
      
      
        fi
      
      
        if
      
       [[ 
      
        "
      
      
        $str5
      
      
        "
      
       == 
      
        ""
      
       ]]; 
      
        then
      
      
        echo
      
      
        "
      
      
        empty
      
      
        "
      
      
        fi
      
      
        if
      
       [[ 
      
        "
      
      
        $str1
      
      
        "
      
       == 
      
        ""
      
       ]]; 
      
        then
      
      
        echo
      
      
        "
      
      
        empty
      
      
        "
      
      
        fi
      
    

 

shell--[重要]字符串是否相等, 字符串是否为空


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论