我正在使用 set -e
在第一次出错时停止执行脚本。
问题是这并没有告诉我哪里出了问题。
如何更新 bash 脚本,以便它显示上次失败的命令?
最佳答案
使用 ERR 陷阱代替 set -e
;你可以传递$BASH_LINENO
来获取发生错误的具体行号。我在 https://stackoverflow.com/a/185900/14122 的回答中提供了一个利用此功能的脚本。
总结:
error() {
local sourcefile=$1
local lineno=$2
# ...logic for reporting an error at line $lineno
# of file $sourcefile goes here...
}
trap 'error "${BASH_SOURCE}" "${LINENO}"' ERR
关于bash - 使用 bash set -e 时如何显示最后一个失败的命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10743026/