在Jenkinsfile中使用反斜杠时出现语法错误

时间:2018-03-08 16:01:46

标签: jenkins jenkins-pipeline

我尝试在pipeline上创建简单的Jenkins,以便不时从少数目录中删除文件。我决定不使用python创建Jenkinsfile脚本作为新项目,而不是尝试在pipeline作业中定义新的Jenkins脚本。

pipeline {

  agent any

  stages {
    stage('Check virtualenv') {
      steps {
          sh """
            rm -r /mnt/x/some/directory/Problem\ 1.0/path
          """
      }
    }
  }
}

我收到错误WorkflowScript: 4: unexpected char: '\'。如何在不使用反斜杠的情况下使用带有空格的路径?如何定义路径?

2 个答案:

答案 0 :(得分:11)

'\'字符是Groovy中的特殊字符。如果您尝试使用普通的Groovy编译器编译此类代码,它将为您提供更好的错误消息。处理它的最简单方法是逃避它:

"""
  rm -r /mnt/x/some/directory/Problem\\ 1.0/path
""" 

答案 1 :(得分:2)

您可以按如下方式修改shell命令:

      sh """
        rm -r /mnt/x/some/directory/Problem""" +  """ 1.0/path"""

根据需要在1.0之前提供空间。希望这会有所帮助。