我在Bash脚本中运行java程序。 如果java程序抛出未经检查的异常,我想停止bash脚本而不是脚本继续执行下一个命令。
怎么做?我的脚本如下所示:
#!/bin/bash
javac *.java
java -ea HelloWorld > HelloWorld.txt
mv HelloWorld.txt ./HelloWorldDir
答案 0 :(得分:12)
与Tom Hawtin达成协议,
要在Bash脚本中检查Java程序的退出代码:
#!/bin/bash
javac *.java
java -ea HelloWorld > HelloWorld.txt
exitValue=$?
if [ $exitValue != 0 ]
then
exit $exitValue
fi
mv HelloWorld.txt ./HelloWorldDir
答案 1 :(得分:10)
捕获异常,然后调用System.exit。检查shell脚本中的返回码。
答案 2 :(得分:3)
#!/bin/bash
function failure()
{
echo "$@" >&2
exit 1
}
javac *.java || failure "Failed to compile"
java -ea HelloWorld > HelloWorld.txt || failure "Failed to run"
mv HelloWorld.txt ./HelloWorldDir || failure "Failed to move"
此外,您必须确保java
以非零退出代码退出,但这很可能是未捕获的异常。
如果命令失败,基本上退出shell脚本。