String 如何在shell中检查空值

String 如何在shell中检查空值,string,shell,if-statement,String,Shell,If Statement,我有一个变量(一个字符串),它可以有两个值: (1) 变量=null (2) variable=“某些字符串值” 现在我必须应用如下条件: 如果(变量等于null),则 执行步骤1 否则执行步骤2 该脚本将在jenkins中运行,变量的实际值将在jenkins中的脚本中替换 但是我的变量只有两个值,要么是null,要么是字符串“value”…但是当脚本运行时,它会替换这些值,所以当变量被替换时,它也会将null视为一个字符串..所以当我使用-n时,它只执行if部分..例如…if[-n varia

我有一个变量(一个字符串),它可以有两个值: (1) 变量=null (2) variable=“某些字符串值”

现在我必须应用如下条件:

如果(变量等于null),则 执行步骤1 否则执行步骤2

该脚本将在jenkins中运行,变量的实际值将在jenkins中的脚本中替换


但是我的变量只有两个值,要么是null,要么是字符串“value”…但是当脚本运行时,它会替换这些值,所以当变量被替换时,它也会将null视为一个字符串..所以当我使用-n时,它只执行if部分..例如…if[-n variable-ge 1]…所以当脚本运行时…它会像这样被替换..[if-n null-ge 1]它返回真的…它不应该…如何解决这个问题


如何在shell脚本中检查它?

使用unix测试来检查字符串是否为空

 [ -z $var ] && echo empty || echo non empty # -z returns true on empty string
 [ -n $var ] && echo non empty || echo empty # -n returns true on non empty string.

在或任何其他更好的站点上查找有关测试命令的模式详细信息。希望这能有所帮助。

正确的可能副本的可能副本,但对于OP,if语句更易于阅读和实现。您也可以建议
man test
。但是我的变量只有两个值,要么是null,要么是字符串“value”…但是当脚本运行时,它会替换值,所以当变量被替换时,它也会将null视为字符串..所以当我使用-n时,它只执行if部分..例如…if[-n variable-ge 1]…所以当脚本运行时…它会被这样替换…[if-n null-ge 1]并返回true..it shouldnt..how to solution this有一些经典的方法来检查空字符串(不过还有其他更好的方法)。使用[“X${var}”=“X”]&&echo变量为empty@WalterA,谢谢你的评论。将尝试在我的下一次机会中增加更多可读性和资源在AIX上,我的ksh脚本在测试空的
var
时出错,最好是
[-z“$var”]
。我想知道对其他人来说什么是最容易的:您的符号,使用关键字
if
编写,或者使用
test-z“${var}”和&……
测试verbose。