从Jenkins Shell脚本执行时,diff命令失败

时间:2020-10-05 08:41:27

标签: bash shell jenkins scripting diff

我执行的diff命令很简单,但是从詹金斯的专有shell脚本中给出时失败。

echo 'diff Delta_changes_current.txt Delta_changes_previous.txt >> PR.DELTA.FILES'
chmod 777 delta.sh
. ./delta.sh
diff Delta_changes_current.txt Delta_changes_previous.txt

构建步骤'Execute shell'将构建标记为失败

甚至没有错误可以找出问题所在。

当我直接从服务器运行相同命令时,命令将给出结果。

有人可以帮助我找到需要做的事情

..

以上代码片段来自日志。 让我仅通过运行命令来粘贴日志。


+ diff Delta_changes_current.txt Delta_changes_previous.txt
1,4c1
< ################################# Delta_Changes_currect file for Junit##########
< 
< /OptionlessVDDSController.java
< /OptionlessVDDSControllerTest_.java
\ No newline at end of file
---
> /OracleBroker.java
Build step 'Execute shell' marked build as failure

其打印输出并立即失败

1 个答案:

答案 0 :(得分:1)

根据 diff 手册页:

_如果输入相同,则退出状态为0;如果输入不同,则退出状态为1;如果输入错误,则退出状态为2。_

如果文件不同,则diff设置退出状态1。如果执行步骤返回的退出状态不同于0,则詹金斯将执行步骤视为失败。

您可以再添加一个命令来捕获这种情况:

(( $? < 2 )) && true # Convert status 1 to 0