You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Pipeline中Groovy字符串比较失效问题求助

问题解决:Jenkins中readFile读取字符串比较失败

你的问题出在readFile读取的字符串包含换行符,导致和纯"1"比较不匹配。从运行输出能看到,echo output之后有一行空行,说明读取的内容实际是"1\n"(带换行),而不是你以为的"1"。

解决方法

方法1:去除首尾空白字符

用trim()方法去掉字符串首尾的换行、空格等空白字符,再做比较:

def output = readFile("$WORKSPACE/txt.txt").trim()
println output.getClass()
println output
if (output == "1") {
  println "Jenkins Node diskspace starting to get a bit slim."
}
else {
  println "Plenty of disk space"
}

方法2:转为整数比较

因为文件内容是0-4的数字,直接转成整数再比较更稳妥:

def output = readFile("$WORKSPACE/txt.txt").trim().toInteger()
println output.getClass()
println output
if (output == 1) {
  println "Jenkins Node diskspace starting to get a bit slim."
}
else {
  println "Plenty of disk space"
}

原因说明

readFile会完整读取文件的所有内容,包括行尾的换行符。你看到的输出中"1"下方的空行,就是这个换行符导致的。直接用带换行的字符串和纯"1"比较,自然会不相等,trim()可以解决这个问题。

内容的提问来源于stack exchange,提问作者Caolan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 19:52:41