shell -z和-n的使用区别

 更新时间:2024年01月18日 10:15:28   作者:张紫娃  
本文将深入探讨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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Shell实现读取ini格式配置文件方法

    Shell实现读取ini格式配置文件方法

    这篇文章主要介绍了Shell实现读取ini格式配置文件方法,本文直接给出实现代码,需要的朋友可以参考下
    2015-02-02
  • shell输出重定向的实现

    shell输出重定向的实现

    本文主要介绍了shell输出重定向的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Linux Shell脚本系列教程(六):数组和关联数组

    Linux Shell脚本系列教程(六):数组和关联数组

    这篇文章主要介绍了Linux Shell脚本系列教程(六):数组和关联数组,本文讲解了什么是数组和关联数组、定义打印普通数组、定义打印关联数组等内容,需要的朋友可以参考下
    2015-06-06
  • shell脚本中set -e选项作用范围小结

    shell脚本中set -e选项作用范围小结

    本文主要介绍了shell脚本中set -e选项作用范围小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Shell别名的使用方法及管理技巧小结

    Shell别名的使用方法及管理技巧小结

    别名是一种将复杂命令简化为简单替代的方法,可用于简化命令,本文就来介绍一下Shell别名的使用方法及管理技巧小结,感兴趣的可以了解一下
    2023-09-09
  • 用来查看linux内存使用情况的shell脚本

    用来查看linux内存使用情况的shell脚本

    本文为大家提供的这个脚本,通过查看status文件中VmRSS的字段来查看系统或进程使用的内存情况,有需要的朋友不妨参考下
    2013-02-02
  • nginx日志切割shell脚本

    nginx日志切割shell脚本

    nginx的日志文件没有rotate功能。如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件
    2014-03-03
  • Shell脚本导入导出数据的项目示例

    Shell脚本导入导出数据的项目示例

    在工作中,很多场景都会涉及到数据的导入导出,本文就介绍一下使用Shell脚本导入导出数据的项目示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Linux中的Syslog命令

    Linux中的Syslog命令

    syslog是Linux系统默认的日志守护进程,默认的syslog配置文件是/etc/syslog.conf文件。接下来通过本文给大家分享Linux中的Syslog命令,感兴趣的朋友一起看看吧
    2017-09-09
  • awk统计文件中某关键词出现次数的命令

    awk统计文件中某关键词出现次数的命令

    awk统计文件中某关键词出现的次数,供朋友们学习参考
    2013-02-02

最新评论