2016-09-14 110 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'。 –