Jenkins中的执行shell命令无法识别管道符

时间:2018-04-30 12:43:14

标签: linux shell jenkins command-line sh

在Jenkins的Execute shell命令选项中,我正在尝试执行 xcodebuild -scheme“我的项目”测试| xcpretty --report junit --output report.xml

但是当Jenkins执行它时,看起来它不能识别管道字符,它将它作为下一行或其他东西。

我尝试过的事情 - 将命令放在.sh文件中 - 转义管道角色 - 使用Eval

他们都没有工作

我暂时不想使用Xcode插件。

任何使其有效的提示?

2 个答案:

答案 0 :(得分:0)

尝试将#/!/bin/bash放在命令行代码的顶部。

编辑:如果它不是管道,那么你可能需要获取第一个命令的输出并将其包装起来,以便一次性发送它......我可能写错了。

OUT="$(xcodebuild -scheme "My project" test)"
echo $OUT | xcpretty --report junit --output report.xml

答案 1 :(得分:0)

看起来就像将其视为换行符,因为两个命令实际上是同时执行的;它们不是顺序执行。参见What is a simple explanation for how pipes work in Bash?