在 Bash 中,有没有办法模拟异常?
例如在一个测试函数中,我有几个测试语句
test_foo_and_bar() {
expect_foo $1
expect_bar $2
}
expect_foo() {
[[ $1 != "foo" ]] && return 1
}
expect_bar() {
[[ $1 != "bar" ]] && return 1
}
现在,我想要的是,如果expect_foo
失败,执行停止并返回给 function 的调用者test_foo_and_bar
。
这样的事情可能吗?我知道你可以这样做:
test_foo_and_bar() {
expect_foo $1 || return 2
expect_bar $2 || return 2
}
但我对替代解决方案感兴趣(如果有的话)。
编辑
虽然建议的解决方案非常好,但我还有一个要求。发生异常后,我仍然需要执行清理。因此,仅退出不是一种选择。
用 Java 语言来说,我实际上需要的是某种finally
子句。