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

Jenkinsfile文件名拼接失败求助:无法正确添加.bin后缀

解决Jenkins版本号拼接.bin时换行的问题

问题根源是version.txt中的版本号末尾带有换行符(\n)或回车符(\r),读取变量时被一并带入,导致拼接后.bin被分隔到下一行。以下是几种直接有效的解决方法:

Shell脚本场景(Jenkins sh步骤中)

  • 用tr命令删除所有换行/回车符:
    VERSION=$(tr -d '\n\r' < app/source/version.txt)
    BIN_FILE="${VERSION}.bin"
    echo $BIN_FILE
    
  • 用sed清理空行和末尾回车:
    VERSION=$(sed -e '/^\s*$/d' -e 's/\r$//' app/source/version.txt)
    BIN_FILE="${VERSION}.bin"
    
  • 用awk提取第一行并去除换行/回车:
    VERSION=$(awk 'NR==1 {gsub(/\r|\n/,""); print}' app/source/version.txt)
    BIN_FILE="${VERSION}.bin"
    

Jenkins Pipeline Groovy场景

利用trim()方法直接去除字符串首尾的空白字符(包括换行、回车):

stage('upload binaries') {
    steps {
        script {
            def version = readFile('app/source/version.txt').trim()
            def binFileName = "${version}.bin"
            echo "生成的文件名:${binFileName}"
            // 后续上传逻辑
        }
    }
}

验证方法

如果不确定问题是否由换行符导致,可以打印变量的ASCII字符确认:

echo -n "$VERSION" | od -c

输出中如果出现\n或\r,说明确实存在多余的换行/回车符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:31:21