比较管道插件jenkins中的字符串

问题描述 投票:0回答:4

我正在使用jenkins的管道插件构建流程管道。我有一些我必须触发的工作。为了决定我必须使用哪个下一步,我在文件中写了一个返回码。在此之后,我读了这个文件并做出决定。但比较不起作用。

def returnCode = readFile 'return'

//IP in Datenbank
if ( returnCode == "1" ){
}
else{
}

当我尝试echo returnCode时,脚本在控制台上打印“1”,但它总是进入else部分。比较有什么问题?

jenkins groovy jenkins-pipeline
4个回答
2
投票

使用“trim()”提到的评论之一。这很可能是问题所在。

每当我在调试时打印字符串时,我总是这样打印它们:

println "label[${variable}]"

如果在输出中看到一行上的值和下一行上的“]”(或者只是附加空格),则表明您必须“修剪()”该值。


0
投票

PLS检查这个

node ('master'){
    def returnCode = 2
    sh 'echo returnCode'

    //IP in Datenbank
    if ( returnCode == "1" ){
        sh 'echo 1111'
    }
    else{
        sh 'echo not 11111 !!!'
    }
}

尝试它,它的工作原理,而不是用文件中的读取替换静态vac并检查。


0
投票

PLS检查这个

node ('master'){
    def returnCode = 1
    println (returnCode)

    if( returnCode == 1 ) {
        sh 'echo 1 !!'
    }
    else{
        sh 'echo not 1 !!!'
    }
}

0
投票

我面临同样的问题。问题在于新线或空格字符。例如:

status = getstat()
if (status == "started"){
  println("in if")
} else {
  println("in else")
}

def getstat() {
  def out = new StringBuilder(), err = new StringBuilder()
    status = 'echo started'.execute()
  status.consumeProcessOutput(out, err)
  println "out> $out err> $err"
  println(out)
  return out
}

o / p是:

out> started
 err> 
started

in else

现在只需将返回值更改为

return out.replaceAll("[\n\r]", "");

现在o / p是:

out> started
 err> 
started

in if
© www.soinside.com 2019 - 2024. All rights reserved.