I make stage:
pipeline {
agent { label 'built-in' }
stages {
stage("processing_CadEx") {
steps {
script {
def BuildTarget = sh(script: "cat /tmp/BuildTargets_202", returnStdout: true)
echo "BuildTarget = ${BuildTarget}"
if ( "${BuildTarget}" == "CadEx") {
"BuildTarget2 = ${BuildTarget}"
}
}
}
}
}
}
and get output:
[Pipeline] { (proc_CadEx)
[Pipeline] script
[Pipeline] {
[Pipeline] sh
+ cat /tmp/BuildTargets_202
[Pipeline] echo
BuildTarget = CadEx
[Pipeline] }
[Pipeline] // script
BuildTarget2未打印,但变量BuildTarget似乎已正确定义并打印为CadEx
我做了很多实验,但“如果”并不像我想的那样工作
2条答案
按热度按时间vlurs2pr1#
问题出在您的
if
块内。将其改为:您在整个语句周围放置了
""
,这是错误的,并且您没有回显BuildTarget2
的值,这就是为什么您在控制台输出中看不到任何内容。我测试了你的管道与这两个改变和其他一切似乎都很好。
rqenqsqc2#
看到后面的空行了吗
意味着你的字符串在末尾有一个新的行。您正在比较的字符串-不。添加
.trim()
。你也不需要这个"${BuildTarget}"
的废话,BuildTarget
已经是一个字符串。