【发布时间】:2020-09-24 10:37:02
【问题描述】:
我有一个由 jenkins 管道触发的 shell 脚本,用于检测文件夹中的文件是否已更改。我希望脚本根据文件夹中的更改将 1 或 0 返回到管道脚本。我还想在管道脚本中读取该返回值,以便采取相应措施。
【问题讨论】:
标签: bash shell jenkins jenkins-pipeline jenkins-groovy
我有一个由 jenkins 管道触发的 shell 脚本,用于检测文件夹中的文件是否已更改。我希望脚本根据文件夹中的更改将 1 或 0 返回到管道脚本。我还想在管道脚本中读取该返回值,以便采取相应措施。
【问题讨论】:
标签: bash shell jenkins jenkins-pipeline jenkins-groovy
您可以将sh 步骤传递给returnStdout 或returnStatus 参数。据我所知,你只能通过一个。
要解决这个问题,我会这样做:
def result = sh script: 'my-command || echo error', returnStdout: true
def error = result.endsWith("error")
error 仅在脚本返回非零退出代码时为真。
result 将包含脚本的输出(可能包括字符串“error”,必要时可以删除)
【讨论】: