-shell脚本中if条件内的z选项

-shell脚本中if条件内的z选项,shell,scripting,Shell,Scripting,在使用shell脚本编写if条件时,有人能告诉我-z选项的重要性吗 让我粘贴我所看到的确切条件 if [[ "x$do_clean_flag" = "x-clean" && -z "$show_me_flag" && "$verify" = true ]] 从“帮助测试”中: -z(something)表示如果(something)为NULL,则返回true 建议zero-length也返回true,我建议在您的机器上执行“人工测试”,以检查系统上的确切措辞。

在使用shell脚本编写if条件时,有人能告诉我-z选项的重要性吗

让我粘贴我所看到的确切条件

if [[ "x$do_clean_flag" = "x-clean" && -z "$show_me_flag" && "$verify" = true ]]
从“帮助测试”中:

-z(something)表示如果(something)为NULL,则返回true


建议zero-length也返回true,我建议在您的机器上执行“人工测试”,以检查系统上的确切措辞。

-z检查是否定义了$show\u me\u标志


查看测试手册()

+1-测试未初始化变量时也会返回true谢谢!这对我帮助很大。不
-z NULL
返回false-如果字符串为空,则z just测试。所以
-z”“
返回true;回声$?返回1。测试-z”“;回声$?返回0。测试-z“某物”;回声$?返回1。所以零长度返回false,我错了,但是NULL返回true。实际上,我的OSX系统为这些命令提供了与您相同的输出。但是我的man测试说,
测试实用程序对表达式求值,如果求值为true,则返回零(true)退出状态;否则返回1(false)。若并没有表达式,test也会返回1(false)。
1表示false,0表示true。此外,如果字符串长度为零,则说明:
-z string True。
-z STRING      True if string is empty.