shell 字符串表达式运算

  • 注意
    表达式 [] 中变量需要用双引号”“引用, 否则某些情况会导致判断结果有误, [[]] 中可用可不用
  • == (等于) 和 != (不等于)
    v1='A'
    v2='B'
    v3='A'
    
    [[ $v1 == $v2 ]] && echo 'true' || echo 'false'
    [[ $v1 == $v3 ]] && echo 'true' || echo 'false'
    [[ $v1 != $v2 ]] && echo 'true' || echo 'false'
    [[ $v1 != $v3 ]] && echo 'true' || echo 'false'
    
    # false
    # true
    # true
    # false
    
  • =~ 判断字符串是否被包含(区分大小写)
    v='Hello World'
    
    [[ $v =~ 'hello' ]] && echo 'Y' || echo 'N'
    [[ $v =~ 'Hello' ]] && echo 'Y' || echo 'N'
    [[ $v =~ 'World' ]] && echo 'Y' || echo 'N'
    [[ $v =~ 'test' ]] && echo 'Y' || echo 'N'
    
    # N
    # Y
    # Y
    # N
    
  • -n 判断字符串长度不为0
    v1='123456'
    v2=''
    
    [[ -n $v1 ]] && echo 'not empty' || echo 'empty'
    [[ -n $v2 ]] && echo 'not empty' || echo 'empty'
    [ -n "$v1" ] && echo 'not empty' || echo 'empty'
    [ -n "$v2" ] && echo 'not empty' || echo 'empty'
    
    # not empty
    # empty
    # not empty
    # empty
    
  • -z判断字符串长度为0
    v1='123456'
    v2=''
    
    [[ -z $v1 ]] && echo 'empty' || echo 'not empty'
    [[ -z $v2 ]] && echo 'empty' || echo 'not empty'
    [ -z "$v1" ] && echo 'empty' || echo 'not empty'
    [ -z "$v2" ] && echo 'empty' || echo 'not empty'
    
    # not empty
    # empty
    # not empty
    # empty
    
posted @   cc-31415926  阅读(99)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 分享4款.NET开源、免费、实用的商城系统
点击右上角即可分享
微信分享提示