免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4277 | 回复: 4
打印 上一主题 下一主题

请教: $ SQLPLUS ${USERID} >/dev/null <<EOF里面<& [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-26 15:46 |只看该作者 |倒序浏览
下面两个文件的目的是,ORACLE的SQLPLUS里执行truncall,
在执行的时候记录下执行结果,根据LOG再输出执行成功与否.
其他的都没有问题,<<EOF  不知道怎么和后面的
exit
EOF
一起作用?

第一个文件内容:
#!/bin/sh
. ${BATCHENV}/batch.env

$SQLPLUS_CMD $USERID >/dev/null <<EOF  ----不懂的地方
spool ${BATCH_HOME}/tmp/truncall.log
@${EXPIMP_PATH}/truncall
spool off
exit
EOF

然后在第二个文件里面:
#!/bin/sh
. $BATCHENV/batch.env
SPOOL_FILE=${BATCH_HOME}/tmp/truncall.log
echo "`date +'%Y/%m/%d %H:%M:%S'` : start truncate all table shell."

# truncate all table
${EXPIMP_PATH}/第一个文件.sh

rc=`grep -c "ORA-" ${SPOOL_FILE}`
if [ ${rc} = '0' ] ; then
   echo "`date +'%Y/%m/%d %H:%M:%S'` : truncate all table shell normal end."
else
   echo "`date +'%Y/%m/%d %H:%M:%S'` : truncate all table shell ERROR end."
fi
exit ${rc}

论坛徽章:
0
2 [报告]
发表于 2003-05-26 15:49 |只看该作者

请教: $ SQLPLUS ${USERID} >/dev/null <<EOF里面<&

$SQLPLUS_CMD $USERID >/dev/null <<EOF ----不懂的地方
spool ${BATCH_HOME}/tmp/truncall.log
@${EXPIMP_PATH}/truncall
spool off
exit
EOF
两个EOF之间的内容作为$SQLPLUS_CMD $USERID 的输入

论坛徽章:
0
3 [报告]
发表于 2003-05-26 15:58 |只看该作者

请教: $ SQLPLUS ${USERID} >/dev/null <<EOF里面<&

谢谢! 对阿,听您这样一解释,想想确实是这样的啊.嘻嘻.

那就是说,"<<"是SHELL的语法咯? 意思是一个命令执行后的全部输入,可包括回车等等.是吗?
还有, ">/dev/null "的意思是命令$SQLPLUS_CMD的输出结果不显示在屏幕,是吗?
再次感谢!

论坛徽章:
0
4 [报告]
发表于 2003-05-26 16:03 |只看该作者

请教: $ SQLPLUS ${USERID} >/dev/null <<EOF里面<&

对,但如果命令出错还是会显示在屏幕上.

论坛徽章:
0
5 [报告]
发表于 2003-05-26 16:19 |只看该作者

请教: $ SQLPLUS ${USERID} >/dev/null <<EOF里面<&

谢谢!
我想我应该再写几个例子来测试一下,比如说如果命令参数的内容有错,
除了">/dev/null "会失效,还是会显示在屏幕上外, 剩下的命令是否会中断执行等等.

nkliyong: 这次的提问真的得到了您很有帮助的回答. 谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP