Chinaunix

标题: 请教一个linux返回值问题 [打印本页]

作者: pjghost    时间: 2012-04-01 15:07
标题: 请教一个linux返回值问题
在写一本shell中有这样一段,想进行数据库expdp 导出,但当导出出错时 $?仍然返回0,
应该如何修改呢
谢谢


su - oracle -c "expdp system/$DB_SYSTEM_PASSWD schemas=$schemas include=table directory=TEMP_DIR1 dumpfile="$schemas"_USER.dmp logfile=exp"$schemas"_USER.log"  >> $logfile

SQLPLUS_RET=$?
if [ ${SQLPLUS_RET} -eq 0 ]; then
    echo "NOTE: Data exporting succeeded without error !"                                          >> $logfile
else
    echo "ERROR at step 2: Data exporting executing failed !"
    exit 1
fi


作者: pjghost    时间: 2012-04-01 15:18
本帖最后由 pjghost 于 2012-04-01 15:29 编辑

回复 1# pjghost


   
像以下这种形式的调用,若 sql 语句不正而出oracle错得话 ,貌似$?也是0

sqlplus sys/${DB_SYS_PASSWD} as sysdba @create_temp_folder.sql

SQLPLUS_RET=$?
if [ ${SQLPLUS_RET} -eq 0 ]; then
    echo "NOTE: directory was created successfully without error!"
else
    echo "ERROR at step 1: Create directory executing failed"
    exit 1
fi

改如何跟正啊,求大虾指点.





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2