Posted by 每特17劃 on 2015-05-18

Bash 上的 Error Handling 實作策略

大綱:

    1. 實際上遇到的問題, 與 bash 預設的模式
    1. Error Handling 議題: keepgoing(風雨無阻) v.s. longtake(一鏡到底)
    1. Error Handling 議題: return v.s. exception(bubble) v.s. signal
    1. Bash 現有的的機制 trap / kill / set -o errtrace
    1. 自行設計 Bash Error Handling 機制 ( Backtrace / Handler stack / Error policy )

引用出處:

https://docwhat.org/tracebacks-in-bash

https://bashdb.sourceforge.net/ 這個也有作 backtrace

2023-01-23

shell script 裏,不時會用到 success or diesuccess or exit 的用法如下:

tmpd=$(mktemp -d)
{
   ...
   check_conditions || die "Error happens."
   ...
   check_requirements || exit 1
}
rm -r $tmpd

結果程式直接跳離,但留下的 temp 目錄沒有清掉。