我正在尝试使用KornShell(ksh)脚本编译文件夹中的所有Java文件。
此脚本由Apache Ant调用,因此我需要返回错误代码,以便知道何时失败。
function check_if_error
{
if [ $1 != 0 ]
then
echo "Unable to compile java module"
echo "Error code $1"
echo "Reason: $2 module"
java_fail=1
exit 1
fi
}
echo "Compiling the java files..."
javac com/cmsi/eValuate/ScriptProcessor/*.java
check_if_error $? "ScriptProcessor"
我在其中一个Java文件中强制出现编译错误,因此当它遇到函数的exit 1
部分时,它会杀死我登录到框中并运行此脚本的telnet会话。 / p>
我尝试了return
,但是return
没有杀死shell脚本,它只是一直在运行。
我尝试了kill -1 $$
,但这也关闭了终端会话。
我正在使用Solaris 5 OS。
答案 0 :(得分:1)
你可以试试这个:
echo compiling...
if ! javac com/cmsi/eValuate/ScriptProcessor/*.java
then
echo "compilation errors"
return 1
fi
我不熟悉ant,但听起来它正在执行(获取)当前shell中的代码而不是生成可以成功退出的子shell。