当前位置: 技术问答>linux和unix
关于exit语句的问题
来源: 互联网 发布时间:2016-01-30
本文导语: 将在AIX下的这段SHELL脚本移植到Linux下后,若是执行mv ${TRAN_DIR}/${TEMP_2} ${BACKUP_DIR}该语句出错后,并没有退出整个当前shell脚本,而只是退出当前while循环,然后还会继续执行下面的命令,而在aix下,就会退出整个shell...
将在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
请问这是怎么回事?
#!/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
|
问题已解决,其实是管道处理方式的差异,改变语法,不用管道加循环的方式就可以解决
--------------------------------
呵呵,我正想说这些意思呢。看到这个帖子看晚了一步。
--------------------------------
呵呵,我正想说这些意思呢。看到这个帖子看晚了一步。