我正在尝试在我的 Jenkinsfile 中为多分支管道项目使用 if 语句。为了这个问题,假设我的当前目录中有一个名为“scan.txt”的文本文件。文本文件是使用 bash 命令生成的
echo "False" > scan.txt
所以唯一的内容是字符串“False”
我在 Jenkinsfile 中将任意环境变量设置为 scan.txt 的内容,如下所示:
script {
env.TEXT = readFile 'scan.txt'
}
如果我做
echo "${env.TEXT}"
在脚本块之外,jenkins 控制台按预期显示该步骤的 False 。
但是,我检查它是否等于“False”的所有尝试都失败了。我在脚本块之后立即尝试了以下操作:
if (env.TEXT.equals("False")) {
//do something
}
if (env.TEXT.matches("False")) {
//do something
}
if (env.TEXT == "False") {
//do something
}
他们都没有工作。所有这些条件都是布尔假。读取文件管道步骤的文档指出它返回文件内容的字符串 https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#code-readfile-code-read-file-from-工作区 ,所以我不确定这里发生了什么。有没有人有任何见解?
谢谢