代码之家  ›  专栏  ›  技术社区  ›  Ashar

无法理解什么`sh!`在Jenkins管道代码中

  •  0
  • Ashar  · 技术社区  · 6 年前

    我有一个Jenkins管道代码

    stages {
        stage('Monitoring logs') {
           steps {
              script {
                  sh '! grep "wow" output.log
                     }
                  }
              }
          }
    

    有人能解释一下这部分代码的作用吗-> sh '! grep "wow" output.log' 如果在中发现“wow”字符串,那么它对管道执行的执行或状态会有什么影响 output.log ?

    我明白这一点 grep "wow" output.log 将在中搜索“wow”字符串 输出日志 但我不知道会发生什么 嘘!grep“wow”输出。日志'

    0 回复  |  直到 6 年前
        1
  •  3
  •   Biffen Asad Mukhtar    6 年前
    1. grep "wow" output.log 成功(退出0)如果 output.log 包含 wow ,否则将失败(退出非0)。

    2. ! negates the exit code (0变为1;非0变为0)。

    3. Jenkins’ sh function 在非0退出代码上运行shell脚本并引发异常,这将导致管道失败。 *

    因此,如果 输出日志 包含 哇!

    * 通过使用 -e 选项