linux shell

关注公众号 jb51net

关闭
首页 > 脚本专栏 > linux shell > shell -z -n

shell -z和-n的使用区别

作者:张紫娃

本文将深入探讨shell命令中的-z和-n选项,通过详细解释这两个选项的工作原理和用途,帮助读者更好地理解和掌握Shell脚本编写,感兴趣的可以了解一下

-n : 字符串长度不等于 0 为真 ,助记符 no zero, example :

VAR1=1;VAR2="" ;[ -n "$VAR1" ];echo $?  为 0  true
VAR1=1;VAR2="" ;[ -n "$VAR2" ];echo $?  为 1 false .

-z : 字符串长度等于 0 为真 ,助记符zero , example :

VAR1=1;VAR2="";[ -z "$VAR1" ] ;echo $? 为 1
VAR1=1;VAR2="";[ -z "$VAR2" ] ;echo $? 为  0 true .

-z 和 -n 的一个使用场景

tree_rpm=$(rpm -qa | grep -i tree)  // 查询当前tree已经安装的版本

if [ -n "${tree_rpm}" ]; then
    rpm -e tree                    // 如果查询到,则删除
fi

if [ ! -z "${tree_rpm}" ]; then
    rpm -e tree                    // 如果查询到,则删除
fi

-n : 字符串长度 不等于 0 为真  助记符 no zero    类似java里的  isNotBlank
-z : 字符串长度   等于 0 为真  助记符 zero       类似java里的  isBlank

使用注意点

在 [] 中,使用 -z 或 -n 判断字符串长度时,变量要加 "" 或 []。

举例说明

# [ -z $a ] && echo yes || echo no
yes
# [ -n $a ] && echo yes || echo no
yes


# [ -z "$a" ] && echo yes || echo no
yes
# [ -n "$a" ] && echo yes || echo no
no

# [[ -n $a ]] && echo yes || echo no
no
# [[ -z $a ]] && echo yes || echo no
yes

到此这篇关于shell -z和-n的使用区别的文章就介绍到这了,更多相关shell -z -n内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文