因為ERP是在HP-UX的機器上,所以以Winodws平台開發的程式必須在Unix下編譯才能正常,
因此前人以模組製作*com來自動編譯程式,如INVCOM:
#clear
echo 'now compiler Form $1.fmb....'
date
rm $INV_TOP/forms/US/$1.fmx
ls -l $1.fmb
$ORACLE_HOME/bin/f60gen module=$AU_TOP/forms/US/$1.fmb userid=APPS/123456 output_file=$INV_TOP/forms/US/$1.fmx module_type=form batch=YES compile_all=special
ls -l $1.err
ls -l $INV_TOP/forms/US/$1.fmx
echo 'now compiler Form $1.fmb....'
date
rm $INV_TOP/forms/US/$1.fmx
ls -l $1.fmb
$ORACLE_HOME/bin/f60gen module=$AU_TOP/forms/US/$1.fmb userid=APPS/123456 output_file=$INV_TOP/forms/US/$1.fmx module_type=form batch=YES compile_all=special
ls -l $1.err
ls -l $INV_TOP/forms/US/$1.fmx
但是每次只要重新CLONE到測試機後,所有的*com的密碼都要手動改正,因此寫了一個簡單
的Shell Script來自動更新密碼,程式碼如下:
if [ $# -ne 2 ]; then -- $#是指傳入參數的數量,-ne表示不等於
echo "fix_pwd_com.sh "
echo "exit with error"
exit 1 --中斷程式並回傳1
fi
for v_file in *com --讀取檔案
do
echo "fix_pwd_com.sh
echo "exit with error"
exit 1 --中斷程式並回傳1
fi
for v_file in *com --讀取檔案
do
cat $v_file > test.tmp --先將檔案內容複製到temp檔
sed "s/$1/$2/gp" test.tmp -- $v_file -->修改密碼
echo "$v_file is complete"
done
rm -f test.tmp
exit 0
done
rm -f test.tmp
exit 0
注意不要用sed -n,否則只會寫入有變動過的部份,不會寫入全部的內容