需求:要用shell生成一个文件,但是其中一个参数translate_no需要从oracle数据库中获取
#!/bin/sh
#. /home/ju/.bash_profile
#input para,判断输出的参数是否为2个
if [ $# -ne 2 ]; then
echo "retCode:-1"
echo "retMes:Please input params!"
fi
#get translate_no,从数据库获取值并赋值给shell变量
USERNAME='username'
PASSWORD='passwd'
SIDNAME='orcl'
SERVICE='192.168.133.1'
sql="select 'status='||sysdate from dual;"
translate_no=`echo $sql | \
sqlplus -S ${USERNAME}/${PASSWORD}@${SERVICE}/{SIDNAME} | \
grep status | \
awk -F= '{print $2}' `
#define value,定义变量
file_no=$2
file_type=$1
sysdate=`date +%Y%m%d%k%M%S`
file_name="2301_Collect_Req_"${sysdate}${file_type}"_"${translate_no}"_"${file_no}".xml"
#get xml,生成需要的xml文件
echo '<?xml version="1.0" encoding="UTF-8"?>' > ${file_name}
echo '<RA>' >> ${file_name}
echo '<SvcCont>' >> ${file_name}
echo "<![CDATA[<DataConsistencyReq><DataType>010</DataType><ConsistencyType>0</ConsistencyType><ValidTimeEnd>"${sysdate}"00</ValidTimeEnd></DataConsistencyReq>]]></SvcCont>" >> ${file_name}
echo '</SvcCont>' >> ${file_name}
echo '</RA>' >> ${file_name}
echo "retCode:0"
echo "retMes:succes"
exit 0