2017-06-05 114 views
1
退出命令

我正在运行sh脚本作为我的.travis.yml的一部分。它给了我下面的错误,尽管shell脚本没有失败。在travis CI上运行sh脚本:用1

的命令1.

退出我试着使用bash -x调试运行,并没有错误。 问题是,Travis认为构建失败,但它通过。

+0

你的.travis.yml是什么样的?剧本里有什么? – meatspace

+0

https://github.com/mosaadm/mooltipass/blob/master/.travis.yml – mosaad

回答

1

This变化fixes it

man bash页解释:

壳牌内置命令返回状态0(真),如果成功,和 非零(假)如果在它们的执行错误发生 。所有内置函数返回2的退出状态以指示不正确的用法。除非发生了语法错误,在这种情况下它具有非零值 离开

击本身返回最后执行的命令的退出状态, 。另请参见下面的exit builtin命令。

最后执行的命令是:

[ "$BUILD_CHROMIUM" == 1 ] &&_build_chromium_crx "${zip_file}" "${BUILD_METADATA[${CHROMIUM_TARGET}]}" 

而且它被评价为具有false退出状态1:

'[' 0 == 1 ']' 

所以在这行的末尾添加|| true修复它。退出状态将始终为0

另外,使用该修复程序更适合您的代码像exit 0的预期行为等

作为解释herehere

退出[N ]导致shell以状态n退出。如果省略n,则退出状态是最后执行的命令的状态。在shell终止之前执行EXIT 上的陷阱。

所以你干净的功能trap _clean_chrome EXIT不是最后被执行。

有关退出状态here的更多信息。