Confronta string groovy pipeline Jenkins

Quando utilizzo la pipeline di Jenkins con Docker, voglio confrontare il valore della string con lo script Groovy, ma il risultato di confronto è stato errato, lo script di seguito è il mio groovy script e il risultato dell'output:

C'è chi può dirmi come risolvere questo problema?

String runningContainerId = sh(script: "docker ps --filter=\"name=${appEnv}-${env.JOB_NAME}-${env.BUILD_NUMBER}\" -q | xargs", returnStdout: true) //def runningImageId = sh(script: "docker images | grep ${appEnv}-${env.JOB_NAME}:${env.BUILD_NUMBER} | tr -s ' ' | cut -d ' ' -f 3 ", returnStdout: true) println 'current container:' + runningContainerId //println runningImageId try{ def ret = sh(script: "docker ps --filter=\"name=${appEnv}-${env.JOB_NAME}\" -q | xargs", returnStdout: true) def splitStr = ret.tokenize(" ") println 'splitStr=>' + splitStr String containerId = runningContainerId println 'containerId=>' + containerId for( String str in splitStr) { print str == containerId print 'str=>' + str if ( str == containerId) { print 'same string:' + str } else { print 'different string:' + str } } 

Il risultato dell'output di Jenkins è:

 splitStr=>[8abe81071b7f, 40e2292d5099, 4136bbdf9cc5] [Pipeline] echo containerId=>8abe81071b7f [Pipeline] echo false [Pipeline] echo str=>8abe81071b7f [Pipeline] echo different string:8abe81071b7f [Pipeline] echo false [Pipeline] echo str=>40e2292d5099 [Pipeline] echo different string:40e2292d5099 [Pipeline] echo false [Pipeline] echo str=>4136bbdf9cc5 [Pipeline] echo different string:4136bbdf9cc5