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

Jenkins选择参数值未在Input消息中渲染,显示为纯文本问题

Jenkins流水线input消息变量不解析的解决办法

你遇到的问题是Jenkins流水线input步骤的消息里,变量没有被替换成实际选择的参数值,而是显示成${VAR_STANDBY_node}这类纯文本。核心原因是Groovy的字符串插值规则,同时你的参数获取方式也可以优化,具体解决办法如下:

关键问题点与修复

  1. 字符串插值规则
    Groovy中,单引号包裹的字符串是纯文本,不会解析其中的变量;只有双引号包裹的字符串才会自动将${变量名}替换为实际值。所以需要把input消息的单引号改成双引号。

  2. 简化参数获取逻辑
    你当前通过sh "echo ${params.standby_node}"来获取参数值完全多余,params是Jenkins流水线内置的参数对象,直接访问params.standby_node就能拿到选择的参数值,跳过shell执行步骤既高效又能避免不必要的转义问题。

修正后的完整脚本

stage('check_count_standby') {
    node("$primary_node") {
        unstash 'db-switchover'
        
        script {
            VAR_STANDBY = sh (
                script: 'sudo cat /pathtofile/count_standby.txt', 
                returnStdout: true
            ).trim()
            
            // 直接从params获取参数,无需shell中转
            VAR_STANDBY_node = params.standby_node.trim()
            VAR_STANDBY_dbase = params.standby_dbase.trim()
            
            if (VAR_STANDBY > "1") {
                // 改用双引号实现变量插值
                input message: "您已选择备用节点${VAR_STANDBY_node}和备用数据库${VAR_STANDBY_dbase},是否继续执行?"
            }
        }
    }
}

补充说明:如果你的参数本身就是无多余空格的字符串,trim()也可以省略,直接赋值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 22:54:20