日期:2014-05-16  浏览次数:20679 次

关于exit语句的问题
将在AIX下的这段SHELL脚本移植到Linux下后,若是执行mv   ${TRAN_DIR}/${TEMP_2}   ${BACKUP_DIR}该语句出错后,并没有退出整个当前shell脚本,而只是退出当前while循环,然后还会继续执行下面的命令,而在aix下,就会退出整个shell脚本。
请问这是怎么回事?
#!/bin/sh

ls   ${TRAN_DIR}   |   grep   "C "${PREV_YYYYMMDD}   |   while   read   TEMP_2
do
        mv   ${TRAN_DIR}/${TEMP_2}   ${BACKUP_DIR}
        if   [   $?   -ne   0   ];   then
                msg   WS033   ${SHELL_NAME}   ${TEMP_2}
                exit   1
        fi
done




------解决方案--------------------
问题已解决,其实是管道处理方式的差异,改变语法,不用管道加循环的方式就可以解决
--------------------------------
呵呵,我正想说这些意思呢。看到这个帖子看晚了一步。