- 论坛徽章:
- 0
|
我要将四个文件中的格式化的内容导入数据库,找了一个shell脚本改了一下,结果每个文件只能将第一行导入数据库,请问大家这是什么原因?
代码如下:#!/bin/sh
#################################################################
FZ_NUM=0.3
DB_USER=iocs/iocs@BSSH10G3
DEBUG=on
DO_SQL=on
exec_sql()
{
if [ $DO_SQL = "on" ]; then
sqlplus -s $DB_USER <<!
spool .sql_ret
$1;
!
SQL_RET=`cat .sql_ret|grep "ERROR"|wc -l`
if [ $SQL_RET -ne 0 ]; then
echo "处理语句$1失败,请立即检查!"
exit -1
fi
fi
}
exec_sql_no_ret()
{
# 是否打印执行语句
if [ $DEBUG = "on" ]; then
print "执行语句: "
echo "$1"
fi
# 是否执行语句
if [ $DO_SQL = "on" ]; then
sqlplus -s $DB_USER <<!
spool .sql_ret
$1;
!
fi
}
exec_cmd()
{
# 是否打印执行语句
if [ $DEBUG = "on" ]; then
print "执行语句: "
echo "$1"
fi
# 是否执行语句
if [ $DO_SQL = "on" ]; then
$1;
!
fi
}
###################################################################
echo "插入回执数据入库..."
ls *.POS |while read fn
do
awk -F" " '{ printf $1 " " $2 " " $3 " " $4" " $5" " $6" " $7"\n"}' $fn |read code1 code2 code3 code4 code5 code6 code7
EXEC_SQL="insert into uim_file_pos (IMSI_M,UIMID,ICCID,PIN1,PIN2,PUK1,PUK2,file_no) values('${code1}','${code2}','${code3}','${code4}','${code5}','${code6}','${code7}','${fn}')"
exec_sql "${EXEC_SQL}"
echo "${EXEC_SQL}"
done
|
不加read的话能打印出文件的所有内容,但是加了read之后每个文件就只能读出第一行了。
[ 本帖最后由 封神 于 2008-11-8 16:24 编辑 ] |
|