shell指令碼中如何報錯即刻退出以及如何獲取子shell指令碼的錯誤資訊:set -o errexit

tolywang發表於2015-09-14
shell 指令碼中 :  set -x 是開啟,  set +x是關閉  

set -e  表示有報錯即退出, set  +e  表示關閉這種設定。  set -e 等價於 set -o errexit ,  set  +e 等價於 set  +o errexit 。 

例子:

##  Exit immediately if any untested command fails 
set -o errexit 

...... 很多shell指令碼。 


## 到了需要獲取rman 子指令碼的報錯返回值,不能報錯馬上退出,這裡 Disable set -e 
set +o errexit

nohup rman  cmdfile=restore_ctrl.dat  log=restore_ctrl.log

## Collect error message if rman command failed . 
if [ "$?" != "0" ]; then 
     echo "Restore controlfile failed, please check the log file: $RMAN_BACKUP_PATH/script/restore_ctrl.log ."
     cat  restore_ctrl.log
     exit
else
     echo "Control file is restored . "
fi

## Enable set -e 
set -o errexit

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-1799248/,如需轉載,請註明出處,否則將追究法律責任。

相關文章