if you want use bash and call if by using "crontab", here is one draft sample for the main points:
Note:
1) you need to very careful about the environment variable, like ORACLE_HOME when calling from crontab.
2) you can add "set -x" at the beginning to debug it when you coding
$ if [ -e load_data.dat ] # make sure no duplicated running
then
###get the file list except the last one, since the last may still not finish the ftp
ls -ltr MC_*.dat | awk ' { if ($7!="" ) print $7 }' > aa.list
ls -ltr MC_*.dat | awk ' { if ($7!="" ) print $7 }' | tail -1 >> aa.list
cat aa.list | uniq -c | awk '{if ($1==1) print $2}' > bb.list
### copy all the files to a standard temp file for sqlldr using
cat bb.list | sed 's/^/cat /g' | sed 's/$/ \>> load_data.dat/g' > bb.sh
sh bb.sh
### call sql loader here use the the temp file "load_data.dat"
####################
#please add you sqlldr code here, you can have a pre_build control file with infile="load_data.dat"
####################
#move out the loaded data to a backup folder, here is "bak" folder
cat bb.list | sed 's/^/mv /g' | sed 's/$/ bak\/./g' > cc.sh
sh cc.sh
### clean up
rm aa.list bb.sh cc.sh bb.list
rm load_data.dat
else
echo "$0 is running!"
fi