You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins:变量与字符串单行拼接异常,路径多行显示问题

解决Jenkinsfile变量拼接路径换行问题

问题原因

通过sh步骤执行shell命令并使用returnStdout: true获取结果时,返回的字符串末尾默认带有换行符。你代码中的VERSION、PROJECT、BASEPATH变量都包含换行,导致拼接路径时换行被保留,最终输出被拆分为多行。

解决方案

在将sh返回结果赋值给环境变量时,调用trim()方法去除字符串首尾的空白字符(包括换行符)。修改后的代码如下:

stage('Zip') {
    steps {
        script {
            env.VERSION = sh(script: 'grep -m 1 version_number ${WORKSPACE}/ComponentInfo.toml | tr -s \' \' | tr -d \'"\' | tr -d "\'" | cut -d\' \' -f3', returnStdout: true).trim()
            echo "Version: ${env.VERSION}"
            env.PROJECT = sh(script: 'echo "${WORKSPACE}"|rev|cut -d\'/\' -f1|cut -d\'@\' -f2|rev', returnStdout: true).trim()
            echo "Project: ${env.PROJECT}"
            env.BASEPATH = sh(script: 'echo ${WORKSPACE%/*}' , returnStdout: true).trim()
            env.ZIP_FILEPATH = "${env.BASEPATH}/${env.PROJECT}-${env.VERSION}-SNAPSHOT.zip"
            echo "Zip File Path: ${env.ZIP_FILEPATH}"
        }
    }
}

说明

  • trim()方法会移除字符串开头和结尾的所有空白字符(空格、换行符、制表符等),确保变量内容仅保留有效文本。
  • 无论使用字符串插值("${var}")还是+拼接,只要变量本身不带换行符,就能生成连续的路径字符串。

内容的提问来源于stack exchange,提问作者aiman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 06:05:24