这是主的shell
作用获得上一个日期,用那个日期进行文件处理,
并自动累加日期加下一个日期
利用了数据库来进行日期累,网上有脚本,不利用数据库的,大大可以改进啊
#!/bin/sh
cd $HOME/trans_rptlastday=`cat lastday.lst |cut -c1-8`
echo "lastday is" $lastday
day=`date +%Y%m%d`
while [ $# -gt 0 ]
do
case $1 in
-d[2][0][0][0-9][0-9][0-9][0-9][0-9] )
day=`expr "$1" : '-d\(.*\)'`
lastday=20060000
;;
esac
shift
done
if [ "$lastday" -ge "$day" ]; then
echo "上一次运行日$lastday 大于等于 $currentday"
exit
else
if [ $lastday -ne "20060000" ]; then
echo "change day to lastday"
day=$lastday
fi
fi
filename=${day}.txt
echo "get file" $day $filename
ftp -n 192.168.0.1 <<!
user aa aa
asc
prompt off
cd aaa
get $filename
bye
!
echo ${day}> newATMC.txt
if [ -r "$filename" ]; then
echo "Ok get atmp file report"
gawk -f newATM.awk $filename >>newATMC.txt
rm -f $filename
if [ $day -ne "20060000" ]; then
rm getNextDaytmp.sql
sed "s/sysdate/${day}/" getNextWorkDay.sql > getNextDaytmp.sql
sqlplus aa/aa @getNextDaytmp.sql
echo "change last day"
fi
fi
shell 已经结束
getNextWorkDay.sql 作用用来取下一个工作日
内容
set echo off
set head off
set pagesize 0
set line 10
spool lastday
select to_char(to_date(sysdate,'yyyymmdd')+1,'yyyymmdd') from dual;
spool off
exit