我正在尝试将变量与常量字符串而不是布尔值进行比较。我收到了 null
。
我尝试在 String 变量和常量 String 上使用 .trim()
,但没有帮助。
def host = sshCommand remote: remote, command: "hostname"
echo "${host}" // this is printing the value
当我将返回值与常量字符串进行比较时,它返回一个 null
。
例如:
if (host == "host.domain.com")
或
if ("${host} == "host.domain.com")
或
if ("${host}.equalsIgnorecase("host.domain.com") == "true" )
以上尝试均无效。是否有可能在管道中进行比较?
答案 0 :(得分:1)
对于您的三个尝试:
if (host == "host.domain.com")
这是正确的,应该可以工作。我们需要在问题中查看更多信息,了解为什么它不起作用,包括周围的代码和有用的调试输出。
if ("${host} == "host.domain.com")
这缺少结束插值引用。像下面这样添加后,它应该可以正常工作,并在必要时隐式地将变量重铸为字符串。
if ("${host}" == "host.domain.com")
对于尝试三:
if ("${host}.equalsIgnorecase("host.domain.com") == "true")
这是将 LHS 上的布尔值与 RHS 上的字符串进行比较。此 ==
运算符将始终解析为 false
。您可以通过与 RHS 上的布尔值进行比较来解决此问题。此外,host
变量缺少插值引号以重新转换为字符串。您可以通过以下任一方式解决此问题:
if (host.equalsIgnorecase("host.domain.com") == true)
或:
if ("${host}".equalsIgnorecase("host.domain.com") == true)