使用jenkins/sh将HTML字符串写入文件

使用jenkins/sh将HTML字符串写入文件,jenkins,sh,Jenkins,Sh,我的管道中有一个包含HTML文件字符串(基本上是E2E测试结果)的变量: OUT = sh(script: "kubectl --kubeconfig ./kubeconfig-${scenario} logs \$(kubectl --kubeconfig ./kubeconfig-${scenario} get pods --selector=job-name=greyboxtest -o jsonpath='{.items[0].metadata.name}')", returnStdou

我的管道中有一个包含HTML文件字符串(基本上是E2E测试结果)的变量:

OUT = sh(script: "kubectl --kubeconfig ./kubeconfig-${scenario} logs \$(kubectl --kubeconfig ./kubeconfig-${scenario} get pods --selector=job-name=greyboxtest -o jsonpath='{.items[0].metadata.name}')", returnStdout:true)
HTML = OUT.substring(OUT.indexOf('HTMLSTART')+9, OUT.indexOf('HTMLEND')-1)
echo(HTML)
sh "echo ${HTML} >> ./reports/test.html"
但是,回显行给了我以下错误:
语法错误:换行符意外
。我怀疑这是因为像
之类的特殊字符。因为testresult的JSON版本使用相同的方法工作


有没有其他方法或技巧可以将HTML字符串写入文件系统?

这里有一个示例,可以说它有点Groovier

node() {
    stage ('WriteHTMLOutput') {
        OUT = sh(script: "kubectl --kubeconfig ./kubeconfig-${scenario} logs \$(kubectl --kubeconfig ./kubeconfig-${scenario} get pods --selector=job-name=greyboxtest -o jsonpath='{.items[0].metadata.name}')", returnStdout:true)
        HTML = OUT.substring(OUT.indexOf('HTMLSTART')+9, OUT.indexOf('HTMLEND')-1)
        sh "rm -f /tmp/test.html"
        f = new File("/tmp/test.html")
        f.append("${HTML}")
    }
}
OUT2=OUT.replaceAll(~/[\r\n]/,“”)