免费注册 查看新帖 |

Chinaunix

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

在c-shell里如何进行错误处理!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-11 15:09 |只看该作者 |倒序浏览
su - oracle -c &amp;<< EOF &amp;>& /dev/null
&amp;exp fengsl/fengsl tables='M_DC_COS' &amp;file=/home/fengsl/jsys/exp.dump &amp;indexes=Y &amp;compress=Y &amp;grants=Y &amp;constraints=N &amp;statistics=NONE &amp;direct=Y &amp;log=/home/fengsl/jsys/exp.log;
EOF
我用oracle用户执行exp命令将表'M_DC_COS' &amp;导出,我如何监测到执行exp命令成功与否?我试着用过$status变量来判断,好像不起作用,即使exp过程中出现警告,$status的值仍然为0,我不知道该如何判断,我甚至想从exp.log中找是否有/Export terminated successfully with warnings/来判断是否成功,可是觉得不太好,另外,
su - oracle -c "sqlplus /nolog " << EOF &amp;>& /dev/null
&amp;connect FENGSL/FENGSL
&amp;drop table M_DC_COS;
&amp;exit;
EOF
我执行上述命令,想删除表M_DC_COS,我如何判断连接数据库是否成功,如何判断执行删除表的sql是否成功(如:要删除得表不存在),我如何判断,请高手们指点,谢谢!!!!!!!!!!!!!!!

论坛徽章:
0
2 [报告]
发表于 2005-03-14 10:18 |只看该作者

在c-shell里如何进行错误处理!!

高手们指点一下,多谢!!!!!

论坛徽章:
0
3 [报告]
发表于 2005-03-15 17:00 |只看该作者

在c-shell里如何进行错误处理!!

帮帮忙!!!!!!!!!!!!

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-03-15 17:28 |只看该作者

在c-shell里如何进行错误处理!!

没接触过Oracle不用csh

论坛徽章:
0
5 [报告]
发表于 2005-03-15 17:46 |只看该作者

在c-shell里如何进行错误处理!!

如果在k-shell中如何捕捉错误,如何处理,我知道好像在sh中是用$?,相当于c-shell中的$status

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2005-03-15 18:41 |只看该作者

在c-shell里如何进行错误处理!!

在ksh/bash/sh里基本是用$?来返回最后一个命令的状态值,
现在的csh版本,也可以用这个专用变量
[lee@linux ~/test]$ echo $0
csh
[lee@linux ~/test]$ ll /bin/csh
lrwxrwxrwx    1 root     root            4  3月  5 07:58 /bin/csh -> tcsh
[lee@linux ~/test]$ echo $?
0
[lee@linux ~/test]$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/bash2
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh
/bin/ksh
[lee@linux ~/test]$ echo $status
0
[lee@linux ~/test]$
对于错误信号的捕捉,用trap应该也可

论坛徽章:
0
7 [报告]
发表于 2005-03-15 19:00 |只看该作者

在c-shell里如何进行错误处理!!

could  you paste some sample runtime result there ?  let's see what happen .

论坛徽章:
0
8 [报告]
发表于 2005-03-16 10:29 |只看该作者

在c-shell里如何进行错误处理!!

su - oracle -c "sqlplus /nolog " << EOF > /dev/null
connect FENGSL/FENGSL
drop table M_DC_COS;
exit;
EOF
if( $status != 0) then
  // TODO 错误处理进行
endif
就是当我删除该表时发生错误(假设错误原因是表M_DC_COS不存在),但是其$status的值仍为0
没法监测到我执行删除表发生错误

论坛徽章:
0
9 [报告]
发表于 2005-03-16 10:58 |只看该作者

在c-shell里如何进行错误处理!!

我怎么试trap在c-sh中没这个命令,而且$?也没有
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP