我有一个管道1,它执行bash脚本块成功并运行正常,但是当我从管道2调用此管道1时,bash脚本块没有执行。
其他 sh 单行命令是运行正常并显示输出,但
for
语句中的所有命令进入块脚本不是正在执行
有什么想法吗?
我指的是这个:
管道1
steps {
script{
<commands>
echo "Hello world"
sh '''#!/bin/bash
sh "echo Hello1 world"
for i in $var do
<commands1>
sh "echo Hello2 world"
if ... ;then
sh "echo Hello3 world"
<commands2>
else
sh "echo Hello4 world"
<commands3>
fi
sh "echo Hello5 world"
<commands4>
done
sh "echo Hello6 world"
<commands5>
'''
sh "echo Hello7 world"
}
}
管道2
steps {
build (job: '../../folfer1/pipeline1', parameters: [
...
], wait: true)
}
然后,pipeline2 上的输出显示
echo "Hello world"
echo 'Hello1 World'
echo 'Hello6 World'
echo 'Hello7 World'
但是*不执行代码定位到sh块bash
中的
for
语句中并且没有显示任何错误,只显示Hello world
,Hello1 world
,Hello6 world
和Hello7 world
复制
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /var/lib/jenkins/workspace/folder/pipeline2
[Pipeline] {
[Pipeline] ansiColor
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Executing playbook pipeline2)
[Pipeline] withEnv
[Pipeline] {
[Pipeline] script
[Pipeline] {
[Pipeline] sh
<commands>
[Pipeline] echo
Hello world
[Pipeline] sh
+ echo 'Hello1 world'
Hello1 world
+ echo 'Hello6 world'
Hello6 world
+ <commands5>
[Pipeline] echo
Hello7 world
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // ansiColor
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
简历:
如果我从 pipeline2 调用此 pipeline1
for
语句中的所有命令进入块脚本不会执行,但是,如果我单独运行 pipeline1,结果和所有执行都可以!)
问候, 教育< allways learning
我更改了定义的 sh bash 块代码
sh '''#!/bin/bash
<commands>
'''
由
sh """
<commands>
"""
并得到同样的情况。
提前致谢
问候,教育< allways learning