4
當bash中的命令返回1的退出代碼時,如何觸發函數?我知道頂部的set -e
只會讓我的代碼終止,但我想先調用這個函數。如果代碼運行正常,我希望它在沒有調用函數的情況下正常退出。我不想在每行之後執行$?
檢查。我相信有一個簡單的方法可以做到這一點,但我是bash腳本編寫新手,所以我不知道它是否正確。在bash腳本中發生錯誤時觸發函數
當bash中的命令返回1的退出代碼時,如何觸發函數?我知道頂部的set -e
只會讓我的代碼終止,但我想先調用這個函數。如果代碼運行正常,我希望它在沒有調用函數的情況下正常退出。我不想在每行之後執行$?
檢查。我相信有一個簡單的方法可以做到這一點,但我是bash腳本編寫新手,所以我不知道它是否正確。在bash腳本中發生錯誤時觸發函數
坐落在ERR
pseudosignal陷阱:
set -e
error_handler() {
# do stuff here
}
trap error_handler ERR
所以ERR pseudosignal被轟出了1退出狀態是從失敗的命令返回的任何時間呢? – Kvass
幾乎任何時間。有一些例外是有意義的(例如,如果失敗的命令不是'&&'或'||'列表中的最後一個命令)。 – chepner
明白了,謝謝! – Kvass