zoukankan      html  css  js  c++  java
  • shell--[重要]字符串是否相等, 字符串是否为空

    一. 字符串是否相等.

    建议用
    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
  • 相关阅读:
    echarts —— 绘制横向柱状图(圆角、无坐标轴)
    浅析微信支付:(余额提现)企业付款到微信用户零钱或银行卡账户
    浅析微信支付:支付验收示例和验收指引
    浅析微信支付:如何使用沙箱环境测试
    linux内存源码分析
    linux内存源码分析
    linux内存管理源码分析
    linux源码分析
    移植python笔记
    linux中断源码分析
  • 原文地址:https://www.cnblogs.com/helloweworld/p/4161741.html
Copyright © 2011-2022 走看看