0

所以我有一个bash脚本如下:

Command1 -- If error occurs, ignore error and continue execution
Command2 -- If error occurs, ignore error and continue execution
Command3 -- If error occurs, stop execution, exit the script with the error
Command4 -- If error occurs, stop execution, exit the script with the error
Command5 -- If error occurs, stop execution, exit the script with the error
Command6 -- If error occurs, ignore error and continue execution

我需要检查特定命令以查看它们是否引发错误,如果出现错误,则使用错误代码(Comand3、4、5)退出脚本。但是,我不能使用“set -e”,因为我也希望有意忽略某些命令(Command1、2、6)。

有什么方法可以将命令 3、4 和 5 组合在一个函数中并运行它,以使脚本在这些命令中的任何一个抛出错误时退出?另外,如果我希望在脚本退出之前进行一些清理(类似于 Java 中的 catch 子句,如果出现异常,代码将在其中执行),我该怎么做?

谢谢

4

1 回答 1

0

怎么样:

Command1
Command2
Command3 || exit
Command4 || exit
Command5 || exit
Command6

或者

Command1
Command2
Command3 && Command4 && Command5 || exit
Command6

要进行清理:

cleanup() {
    # commands here that do your cleanup
    # ...
}

Command3 && Command4 && Command5 || { cleanup; exit; }
于 2016-04-08T21:14:34.073 回答