Jenkins shell脚本意外结束文件

coc*_*eis 2 shell jenkins docker jenkins-pipeline

Jenkins使用以下方式启动了一个新服务器Docker:

$ docker run -p 8081:8080 -p 50000:50000 -v "${PWD}"/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -d --name jenkins jenkins/jenkins:lts
Run Code Online (Sandbox Code Playgroud)

我想将它用于执行构建另一个Docker容器的shell脚本的简单管道.这也是我安装它的原因docker.sock.但是,使用如下所示的Jenkinsfile:

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo "####### builds: #######"
                sh "(exit 1) || true # whatever I write here, it always fails"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我总是得到一个错误:

Print Message -- ####### builds: ####### -- (self time 7ms)
####### builds: ####### 

Shell Script -- (exit 1) || true -- (self time 18s)
[X's Pipeline] Running shell script sh: 1: Syntax error: end of file unexpected (expecting "done")
process apparently never started in /var/jenkins_home/workspace/X's Pipeline@tmp/durable-f294beff 
Run Code Online (Sandbox Code Playgroud)

sh以下任何一个替换该行确实产生了类似的错误消息,并导致构建过程失败:

但是当我删除该sh行时,构建成功.我之前在其他系统上成功完成了这项工作.这里有什么我想念的吗?


  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-514.26.2.el7.x86_64
      Architecture: x86-64

    Docker version: 17.05.0-ce, build 89658be
Run Code Online (Sandbox Code Playgroud)

coc*_*eis 8

原来,管道的名称X's Pipeline有一个'; 并且Jenkins没有逃避它或在使用GUI时警告用户!!!!!! .将管道重命名为X Pipeline它后工作正常.之前知道这一点可以节省我几个小时的麻烦......