Skip to content

利用 trap 執行所有 Bash 退出前該做的事情

執行的腳本內容越來複雜度越高相對遇到困難的程度也越高,在執行這些腳本中產生的暫存檔案內容是不適合留下來的被任何東西讀取的。利用Linux trap 指令來在執行退出腳本前必須執行的內容,快速帶你了解 trap 此指令該如何使用 。

指令參數

trap [執行內容] [信號]

較常使用的信號內容如以下

  • HUP
    • 腳本執行時與使用者終端機失去連線。
  • INT
    • 當用戶按下 Ctrl + C ,使腳本終止運行
  • QUIT
  • 當使用者按下 Ctrl + \ ,使腳本退出。
  • KILL
    • 用該訊號終止進程。
  • ERR
    • 當命令出現錯誤時。
  • TERM
    • 當2; 接受到 Kill 時默認發出訊號。
  • EXIT
    • Bash 腳本特有訊號,當退出腳本就會產生不管任何情形。

使用情境

trap 'rm -f "/var/tmp/CJK.text"' EXIT
#當腳本遇上 EXIT 就會執行 rm -f "/var/tmp/CJK.txt"。

常用於退出腳本時清理檔案,或是執行錯誤時退出腳本。

如果當退出要執行多行指令可以使用呼叫函式的方式,使用舉例如下

Exit_safely (){
  command1
  command2
  command3
}
trap Exit_safely EXIT

參考資料

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。