首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Jenkins文件中添加条件if以输出多行

如何在Jenkins文件中添加条件if以输出多行
EN

Stack Overflow用户
提问于 2020-04-08 18:46:34
回答 1查看 58关注 0票数 0

如何添加if条件,即如果得到特定的输出,则执行其他操作,知道我得到这样的输出

代码语言:javascript
复制
[Appium] Welcome to Appium v1.17.0
[Appium] Non-default server args:
[Appium]   logFile: /var/log/appium.log
[Appium]   allowInsecure: {
[Appium]     0: chromedriver_autodownload
[Appium]   }
[Appium] Appium REST http interface listener started on 0.0.0.0:4723

我用过这个,但一无所获。

代码语言:javascript
复制
script{
            def appiumLog =   sh label: 'Appium log', returnStdout: true, script: "docker logs ${containerName}"
            if( appiumLog.substring(appiumLog.lastIndexOf("\n")) == '[Appium] Appium REST http interface listener started on 0.0.0.0:4723') {
                     sh label: 'APK Loading', script: "docker cp src/main/resources/test.apk ${containerName}:/opt"
                     echo "APK file has copied to: ${containerName}"
            }  else {
                     echo "This is the output: ${appiumLog}"
                }
         }

也用了这个但没有用

代码语言:javascript
复制
            if( appiumLog.indexOf('[Appium] Appium REST http interface listener started on 0.0.0.0:4723') >= 0) {
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-08 19:20:53

首先,如果您使用的是returnStdout: true,请确保始终trim()返回的字符串。最有可能的是有一个拖后腿的\n,它破坏了您的搜索。

代码语言:javascript
复制
def appiumLog = sh( label: 'Appium log', returnStdout: true, script: "docker logs ${containerName}").trim()

您的第一个substring()实际上将\n作为第一个字符返回!因此,应该将+1添加到索引中,以跳过\n

代码语言:javascript
复制
if( appiumLog.substring(appiumLog.lastIndexOf("\n") + 1) ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61107864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档