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

Jenkins Pipeline中如何从node块内获取执行结果并传递给上层函数?

问题原因

你遇到的返回null是因为Jenkins Pipeline中node块作为闭包执行时,块内的return语句仅作用于闭包本身,不会自动将值传递到外层的foo函数作用域。

解决方法

你可以在foo函数顶层定义变量承接node块内的执行结果,最后在函数外层返回该变量即可,示例代码如下:

def foo () {
  def lsResult = null
  node('some-node-that-has-bash') {
    lsResult = sh(script: 'ls', returnStdout:true).trim()
  }
  return lsResult
}

补充说明

  • 代码中添加trim()是为了移除sh步骤返回结果末尾默认携带的换行符,避免后续处理时出现多余空白
  • 只要是Jenkins流水线支持的可序列化类型,都可以通过这种变量承接的方式从node块内向外传递值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:09:02