错误后使用可选和非可选命令进行bash陷阱

时间:2019-04-11 19:30:02

标签: bash trap

我正在努力了解如何正确使用bash的trap命令。

我有一个想要的脚本

  1. 做一个
  2. 执行B,这可能会失败
  3. B是成功还是失败,是C
  4. 如果B失败,那么D也会这样做

我想我该怎么做1-3。看起来像;

echo "I am A"

function B {
   echo "I am C"
}
trap B EXIT

echo "I am B"

但是我应该在哪里放置D?如果进入函数B,则执行B是否失败。如果在外面,那就只有成功了。我使用trap错了吗?

1 个答案:

答案 0 :(得分:1)

陷阱可以使用任意代码块,而不仅仅是函数名。

您可以在陷阱中调用函数 评估成功或失败,并在需要时调用下一个函数。

trap 'B || D' exit

如果愿意坚持使用函数名,则可以将整个B || D做成E的主体,然后在退出时调用 that 即可。 ;)