2017-04-18 116 views
0

我正在为需要执行几个sh步骤的Mac上的Jenkins编写管道脚本。他们中的一些涉及RVM和捆扎机...Jenkins在bash脚本中没有回声

sh '#!/bin/bash -xl' + 
    ' && rvm list' + 
    ' && rvm use 2.3.1' + 
    ' && gem install bundler' + 
    ' && which bundler' 

正如你可以看到我有使用hashbang进行RVM和捆扎机的工作,即具有可在登录shell,但问题是我不”即使使用-xl标志,也不会在Jenkins中看到任何日志输出。

有人知道为什么日志输出被忽略,以及如何为此启用它?

UPDATE

sh returnStdout: true, script: '#!/bin/bash -xl && rvm list && rvm use 2.3.1 && gem install bundler && which bundler' 

日志输出:

[Pipeline] sh 
[app_ios_test_automation] Running shell script 
[Pipeline] echo 

回答

0

的 “sh” 的函数具有可选参数。如果你像你这样称呼它,你将不会得到脚本的标准输出。

如果您进入管道作业定义(指定管道脚本本身),应该会看到标有“管道语法”的链接。这使您可以尝试在Jenkins实例中启用的管道步骤。如果您从下拉菜单中选择“sh”,然后单击“高级”按钮,您将看到可以设置的其他选项,包括“returnStdout”标志。

+0

非常感谢您指出的语法sh命令@大卫&@Jacob!但它仍然不会为我工作。请参阅我上面关于如何调用sh的更新以及该部分的日志输出的外观。 – BadmintonCat

+0

此外,其他更简单的sh调用在我的管道脚本中不使用hashbang做日志输出就好了。 – BadmintonCat

0

为了扩展戴维·卡尔的答案,你可能在寻找这样的事情:

sh(returnStdout: true, script: "your script here")