我有一個bash腳本,它按順序運行幾個命令,如果返回非零的錯誤代碼並顯示行號以幫助查找命令,則停止。用調試退出主腳本的包裝腳本
在每個命令之後,我運行一個函數(exitIfLastCommandReturnCodeNotZero),檢查退出代碼是否正常,如果不是,則顯示行號和錯誤代碼。例如:
..
cmd1 param1 param2 ; exitIfLastCommandReturnCodeNotZero $? $LINENO
cmd2 param1 param2 ; exitIfLastCommandReturnCodeNotZero $? $LINENO
cmd3 param1 param2 ; exitIfLastCommandReturnCodeNotZero $? $LINENO
..
這很好,但是有一個內置函數或腳本,它可以包裝命令並給我相同的功能?例如:
..
wrapperScript cmd1 param1 param2
wrapperScript cmd2 param1 param2
wrapperScript cmd3 param1 param2
..
或甚至更好的'塊'級功能,它運行所有命令並在一個命令失敗時退出。例如:
WRAPPERSCRIPT_PSEUDOCODE {
..
cmd1 param1 param2
cmd2 param1 param2
cmd3 param1 param2
..
}
理想情況下,命令失敗時的輸出還應包括(除行號外)命令名稱和參數。
你可能想'設置-E'這樣的功能,子shell和命令替換繼承的陷阱。 – 2011-02-23 17:21:19
這是輝煌的。 – zaf 2011-02-23 20:20:17