
我正在使用一個無法修改的腳本,該腳本不使用退出代碼。 (所有出口都只是「出口」)
在不修改腳本(或對編寫腳本的白痴大喊大叫)的情況下,有沒有辦法檢查腳本是否“到達末尾”而不是在腳本中較早的某個時刻退出?
我唯一能想到的是以某種方式追蹤活動進程直到它結束,但當它因為錯誤而退出時它也會結束。
答案1
我正在使用一個無法修改的腳本,該腳本不使用退出代碼。
如果發生錯誤,該檔案的最後一行應包含“exit”,否則腳本將成功執行。
此代碼將導致命令退出,如果失敗,則傳回代碼 1;如果成功,則傳回代碼 0:
bash -x scriptname 2>&1 | tail -n1 | grep -vq exit
tail -n1
僅顯示最後一行並grep -vq exit
測試該行是否包含單字exit
。
如何使其顯示有用訊息的範例:
bash -x scriptname 2>&1 | tail -n1 | grep -vq exit && echo Success
或者:
bash -x scriptname 2>&1 | tail -n1 | grep -vq exit || echo Fail