2016-09-14 9 views
0

私は、ubuntuにjdkをインストールし、java_homeパスを設定するスクリプトを持っています。 jdkをインストールして設定したら、いくつかのJavaコードをコンパイルして、ビルドが完了したことを通知する電子メールを送信します。以下は、私はコンパイルが10分かかることがわかっているいくつかの擬似コードビルドコマンドの後にbashスクリプトを実行し続ける

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

です。ビルドが10分かかってもbashスクリプトが実行され続けることを私は保証していますか?

第2に、建物にエラーがある場合、私のbashスクリプトでそれを捕まえる方法はありますか?

+0

コマンドの所要時間は、そのコマンドが完了した後で囲みスクリプトが実行を継続するかどうかとは何か関係がありますか? –

+0

私はそれが覚えておく必要がある要因だと思ったので、私は時間単位でサーバーに支払います。 –

+0

実際のスクリプトを投稿することをお勧めします。投稿した例はあなたの質問に無意味です。 –

答えて

0

プロセスは中断されたり、中止するシグナルが受信されたりしない限り、完了するまで実行されます。プロセスが正常に完了したかどうかを確認しようとして

とき、あなたは、多くの場合、それは特別なコマンドで終了した直後にプロセスの終了ステータスを確認することができます「$?」。このコマンドは、正常に成功したことを意味する0の値を表示します。他の数字は何かが失敗したことを表し、通常はコマンドまたはプログラムによって一意に定義されます。あなたがプログラムやスクリプトを書くのであれば、あなたのプログラムの 'exit'コマンドを使ってこれらの値を送ることができます。スクリプトでは、終了ステータスを使用して、失敗の処理方法を決定することもできます。

+0

は明示的に '$をチェックする'一般的なケースでは、実際に悪い習慣です - ?それがあれば '実行する方が良いでしょう! some_command; then ... '、または' some_command || {echo "some_command failed">&2;出口1。 } 'またはsome_commandを実行するよりも、 if(($?!= 0));それから...; fi'。 –

関連する問題