我在編寫一個腳本來編譯Oracle 6i應用程序中的所有窗體,報告,庫和菜單(是,太舊),我應該開始維護,但是我進入菜單,似乎frmcmp仍然返回0,儘管無法編譯.mmb文件。frmcmp退出狀態不應該爲0
要編譯形式,例如,我有:
for i in
發現。 -name'* .fmb'| awk -F。 '{print $ 2}' do frmcmp userid=user/[email protected] 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/[email protected] 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,並且未顯示錯誤消息。
有沒有人有這方面的線索?由於這是一個過時的技術,谷歌沒有給出很多答覆。
在此先感謝。
這是如此明顯,我無法看到它。我癡迷於從frmcmp獲得正確的價值。 – varrtto