2016-09-14 111 views
0

我有一個在ubuntu中安裝jdk並設置java_home路徑的腳本。安裝並設置jdk後,我想編譯一些java代碼,然後發送一些電子郵件通知我構建完成。下面是一些僞代碼構建命令後繼續執行bash腳本

#!/bin/bash   
sudo apt-get jdk 
javac app.java 
echo Build complete 
function smail { 
sendlogic 
} 
smail 
echo Mail sent 

我知道編譯可能需要長達10分鐘。我保證bash腳本將繼續執行,即使構建需要10分鐘,這對我來說很長時間?

其次,如果有什麼建築有錯誤,是有辦法,我能趕上,在我的bash腳本?

+0

爲什麼命令需要多長時間與該命令完成後封閉腳本是否繼續運行有關? –

+0

我按小時支付服務器,所以我認爲這是我應該牢記的一個因素。 –

+0

我建議發佈你的真實腳本,你發佈的例子對你的問題毫無意義。 –

回答

0

一個進程將一直運行,直到它完成,除非中斷或接收到中止信號。

當試圖確定是否一個過程成功完成,你可以經常檢查進程的退出狀態後,立即將其與一個特殊的命令完成「$?」。該命令將顯示值0,通常意味着成功。其他數字可能代表失敗的東西,通常由命令或程序唯一定義。如果您正在編寫程序或腳本,則可以使用程序中的「exit」命令發送這些值。您的腳本也可以使用退出狀態來確定如何處理失敗。

+0

在一般情況下,顯式檢查'$?'實際上是不好的做法 - 最好是運行'if if! some_command;然後...'或'some_command || {echo「some_command failed」>&2;出口1; }'或者比運行'some_command; (($?!= 0));然後 ...; fi'。 –