[英]unable to understand what `sh !` does inside a Jenkins pipeline code
我有一个 Jenkins 管道代码
stages {
stage('Monitoring logs') {
steps {
script {
sh '! grep "wow" output.log
}
}
}
}
有人可以解释一下这部分代码是做什么的 -> sh '! grep "wow" output.log'
sh '! grep "wow" output.log'
以及如果在output.log
找到 "wow" 字符串,它会对管道执行的执行或状态产生什么影响?
我知道grep "wow" output.log
将在output.log
搜索 "wow" 字符串,但我不知道什么会sh '! grep "wow" output.log'
sh '! grep "wow" output.log'
做什么?
如果output.log
包含wow
,则grep "wow" output.log
成功(退出 0),否则失败(退出非 0)。
Jenkins 的sh
函数运行一个 shell 脚本并在非 0 退出代码上抛出一个异常,这将使管道失败。 *
因此,如果output.log
包含wow
则管道将失败。
*通过使用-e
选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.