frmcmp 退出状态不应为 0
frmcmp exit status should not be 0
我正在尝试编写一个脚本来编译我应该开始维护的 Oracle 6i 应用程序(是的,太旧了)中的所有表单、报告、库和菜单,但我得到了菜单和尽管未能编译 .mmb 文件,但似乎 frmcmp 仍然 returns a 0。
以编译表格为例,我有:
for i in
找到。 -名称'*.fmb' | awk-F。 '{ 打印 $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
这很好用,因为 ${?} returns 1 如果编译失败。但如果我尝试:
for i in
找到。 -名称'*.mmb' | awk-F。 '{ 打印 $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 并且没有显示错误消息。
有人知道这件事吗?由于这是一项过时的技术,google 没有给出很多回应。
提前致谢。
您应该检查是否有 .fmx 或 .mmx 或 .plx 文件。
如果不是这种情况,您可以假设编译失败。
我们也是这样用的,效果很好。
我正在尝试编写一个脚本来编译我应该开始维护的 Oracle 6i 应用程序(是的,太旧了)中的所有表单、报告、库和菜单,但我得到了菜单和尽管未能编译 .mmb 文件,但似乎 frmcmp 仍然 returns a 0。
以编译表格为例,我有:
for i in
找到。 -名称'*.fmb' | awk-F。 '{ 打印 $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
这很好用,因为 ${?} returns 1 如果编译失败。但如果我尝试:
for i in
找到。 -名称'*.mmb' | awk-F。 '{ 打印 $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 并且没有显示错误消息。
有人知道这件事吗?由于这是一项过时的技术,google 没有给出很多回应。
提前致谢。
您应该检查是否有 .fmx 或 .mmx 或 .plx 文件。 如果不是这种情况,您可以假设编译失败。
我们也是这样用的,效果很好。