Bash 上的 Error Handling 實作策略
大綱:
-
- 實際上遇到的問題, 與 bash 預設的模式
-
- Error Handling 議題: keepgoing(風雨無阻) v.s. longtake(一鏡到底)
-
- Error Handling 議題: return v.s. exception(bubble) v.s. signal
-
- Bash 現有的的機制 trap / kill / set -o errtrace
-
- 自行設計 Bash Error Handling 機制 ( Backtrace / Handler stack / Error policy )
引用出處:
https://docwhat.org/tracebacks-in-bash
- 2013-06-29
- Tracebacks in bash - The Doctor What
https://bashdb.sourceforge.net/ 這個也有作 backtrace
2023-01-23
shell script 裏,不時會用到 success or die
或 success or exit
的用法如下:
tmpd=$(mktemp -d)
{
...
check_conditions || die "Error happens."
...
check_requirements || exit 1
}
rm -r $tmpd
結果程式直接跳離,但留下的 temp 目錄沒有清掉。