发生错误/异常时中止问题?

时间:2016-03-24 05:54:35

标签: bash shell unix

我有一个bash脚本,它从一些目录中调用多个脚本(bash& python)。

当任何脚本抛出错误/异常时,我想让它中止。

#!/bin/bash

/usr/bin/test.sh /usr/1/sample.sh /usr/2/temp.py 

exit 0

有关如何实现这一目标的任何建议吗?

仅供参考:我是bash脚本的初学者。

1 个答案:

答案 0 :(得分:1)

您可以将set -e放在脚本的顶部:

   -e errexit       If not interactive, exit immediately if any
                    untested command fails.  The exit status of a com‐
                    mand is considered to be explicitly tested if the
                    command is used to control an if, elif, while, or
                    until; or if the command is the left hand operand
                    of an “&&” or “||” operator.

如果其中一个命令在失败时以退出代码非零退出,则将起作用。表现良好的程序应该在成功时始终以0 退出,如果不是,那么你可能想要解决这个问题。

我不完全确定您的期望:

/usr/bin/test.sh /usr/1/sample.sh /usr/2/temp.py 

由于这将运行一个带有两个参数的命令(/usr/bin/test.sh),您可能希望将它们放在不同的行上。