我希望我的Bash脚本可以有一个类似于这样的清理操作:
使用
【更新】我不知道我之前测试了什么。这段代码非常好用,所以我将其留在这里作为一个很好的例子。
#! /bin/bash
set -eu
trap 'echo "E: failed with exitcode $?" 1>&2' ERR
true
false
使用
$?
似乎是一个自然的选择,但实际上并不是这样。它总是包含0
。有没有办法在ERR
陷阱中“窥视”退出代码?【更新】我不知道我之前测试了什么。这段代码非常好用,所以我将其留在这里作为一个很好的例子。
$?
是正确的。你的脚本对我来说打印出了1
。 - dogbane$?
会在trap
动作的定义处被求值。 - Roland Illig