frmcmp退出状态不应为0

时间:2017-08-30 15:29:24

标签: bash compiler-errors oracleforms

我正在尝试编写一个脚本来编译Oracle 6i应用程序中的所有表单,报表,库和菜单(是的,太旧了),我应该开始维护,但是我得到了菜单,似乎好像frmcmp仍然返回0,尽管没有编译.mmb文件。

要编译表单,例如,我有:

for i in找到。 -name'* .fmb'| awk -F。 '{print $ 2}' do frmcmp userid=user/pass@database batch=yes module=/path$i.fmb module_type=form output_file=/path$i.fmx compile_all=yes window_state=minimize 2> errorcomform.log if [ ${?} != 0 ] then echo -e "${FALLA}FAILED${NORMAL}" fi done

这很好用,因为如果编译失败,$ {?}返回1。但如果我尝试:

for i in找到。 -name'* .mmb'| awk -F。 '{print $ 2}' do frmcmp userid=user/pass@database batch=yes module=/path$i.mmb module_type=menu output_file=/path$i.mmx compile_all=yes window_state=minimize 2> errorcomform.log if [ ${?} != 0 ] then echo -e "${FALLA}FAILED${NORMAL}" fi done

正如您所看到的,唯一的主要差异是module type=form的值变为menu

此外,errorcomform.log中没有写任何内容。

要生成错误,我只需抓取任何其他文件(例如.mmx或任何文本文件)并将其更改为.mmb,以便find找到它。尽管它没有生成.mmx文件,但似乎frmcmp仍然返回0并且没有显示错误消息。

有没有人对此有所了解?由于它是一种过时的技术,谷歌没有给出很多回应。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您应该检查是否有.fmx或.mmx或.plx文件。 如果不是这种情况,您可以认为编译失败。

我们也以这种方式使用它并且效果非常好。