2017-06-05 53 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的更多信息。