中止错误时执行shell脚本

时间:2014-03-25 09:48:29

标签: shell abort

我是shelll脚本的新手,我的问题可能非常基础。

我有一个脚本(.sh文件)正在调用几个scipt文件。现在假设,我在执行脚本1时收到错误消息,我想中止脚本并完全终止脚本流程。它不应该继续下一步。

你可以告诉我如何实现这一点。

修改

我的脚本A正在调用脚本B,它在内部调用其他一些脚本C.

如果执行StopServer1.py脚本(脚本B的一部分)失败,则流应该在此处终止,不应该到达StopServer2和StopServer3,并且控制转到脚本A.这也应该终止。

如果set -e有帮助,请告诉我。

cd /usr/oracle/WSAutomate/
java weblogic.WLST /usr/oracle/StopServer1.py >> $logFileName
java weblogic.WLST /usr/oracle/StopServer2.py >> $logFileName
java weblogic.WLST /usr/oracle/StopServer3.py >> $logFileName

2 个答案:

答案 0 :(得分:4)

您可以使用:

set -e

用于在出错时中止脚本。

主脚本代码段:

#!/bin/bash    
set -e

# Any failure in these script calls will make main script to exit immediately
./script1
./script2
./script3

答案 1 :(得分:0)

您可以通过&&这种方式使用运算符<execute_script1> && <execute_script2>

它执行script1,只有当一切正常时,它才会执行script2。如果出现错误,script2将无法运行。