当前位置: 首页 > 知识库问答 >
问题:

将值从shell脚本返回到jenkins管道脚本[重复]

闻人和歌
2023-03-14

我有一个由jenkins管道触发的外壳脚本,它检测文件夹中的文件是否已更改。我希望脚本根据文件夹中的更改返回1或0到管道脚本。我还想在管道脚本中读取返回的值,以便我可以相应地采取行动。

共有1个答案

齐航
2023-03-14

您可以通过sh步骤传递returnStdoutreturnStatus参数。据我所知,你只能通过一次。

为了解决这个问题,我会这样做:

def result = sh script: 'my-command || echo error', returnStdout: true
def error = result.endsWith("error")

只有当脚本返回非零退出代码时,错误才会为真<代码>结果将包含脚本的输出(可能包括字符串“error”,必要时可以删除该字符串)

 类似资料:
  • 我们有重复使用的詹金斯管道和使用相同功能的一些管道。现在我的问题是:重用它们的正确方法是什么。我使用一个共享库,但我不知道我是否必须添加漂亮的脚本或完整的管道?漂亮的脚本似乎是在根中执行的,而不是我的詹金斯工作区,这是一个大问题。你是如何正确处理这件事的?

  • 问题内容: 我能够运行以下shell脚本,但无法从Jenkins管道代码运行。 尝试1。 输出: 尝试2: 尝试过sh“”“ 输出 : 美元符号后的非法字符串体字符;解决方案:要么转义文字美元符号,要么将值表达式括起来 有人能帮我吗? 问题答案: 这应该工作。 您还需要在调用下面的新subshel​​l时转义$

  • 问题内容: 我从Jenkins触发了一个shell脚本,该脚本获取日期并将其导出为环境(Linux)变量$ DATE。我需要在同一詹金斯工作中使用此$ DATE。我做了工作作为参数构建。创建一个字符串参数作为DATE值,如DATE = $ DATE。但这是行不通的。 请建议! 问题答案: 您提到要在外壳程序脚本中导出环境变量,该脚本可能是通过“执行外壳程序”步骤启动的。 问题是,一旦完成外壳程序步

  • 当Kafka JDBC接收器连接器启动时,我使用connect-log4j属性进行日志记录。我试图在connect-log4j.properties中重写shell脚本中的一个值。 我的Shell脚本: //从Shell脚本命令获取process.name process.name=????? log4j.appender.stdout=org.apache.log4j.consoleappend

  • 问题内容: 我想从PHP脚本执行系统上存在的Bash脚本。我的系统上有两个脚本。其中一个是称为at at 的PHP脚本,另一个是称为at at 的Bash脚本。 我的client.php脚本看起来像 我的睾丸看起来像 当我在终端上执行以下操作时 我在终端上得到以下输出 但是当我在打开页面时 我得到以下输出 即使执行了chmod + x testscript,我仍然收到此错误。 我如何从浏览器中获取

  • 问题内容: 我想使用Jenkins 2.x Groovy Script Build Pipeline开始Sonar项目分析。 我在Maven中配置了声纳,所以没什么大不了的: 但是我如何从声纳获得结果呢?甚至更好的是,我如何确定是否达到了质量要求,以便停止构建管道。 据我所知,自从某些声纳版本以来,构建破坏者的概念就已过时。或您将如何处理。 我仍然认为,如果项目的基础代码太糟糕,则停止/暂停构建管