【发布时间】:2020-08-31 08:25:01
【问题描述】:
我有一个 Jenkins 流水线代码
stages {
stage('Monitoring logs') {
steps {
script {
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' 会做什么?
【问题讨论】:
-
我不是 Jenkins 的专家,但通常否定选项
!用于省略/否定输出。所以这里的意思是,打印grep命令的相反状态,所以如果grep找到结果wow,它将是0,但是在否定它之后它将变成1这里(因为命令的成功状态是0). -
sh是 shell 的可执行文件,通常可以在/bin中找到。'! grep "wow" output.log"是要在 shell 中运行的命令。 -
@AnsFourtyTwo 在这种情况下是
shis a Groovy function。 -
如果在
output.log中发现字符串“wow”,sh '! grep "wow" output.log'对管道的执行或状态有什么影响? @AnsFourtyTwo @Biffen @RavinderSingh13
标签: shell unix jenkins jenkins-declarative-pipeline