抛砖引玉,关于linux的shell编程。

抛砖引玉,关于linux的shell编程。

我的邮件服务器有一个脚本会自动生成一个maillist.txt 的文本文件,里面是一行一条邮件地址列表,现我想用cron 进行执行,以便能定期update 我的数据库,我的脚本如下:
#################################################
#                                               #
#filename : loadmail.shl                        #
#this file is a shl program code                #
#load the maillist to the mysql database,       #
#and delete the old mailname                    #
#fanfly 2002-6-26                               #
#                                               #
#################################################

if ls ./maillist
then
cp ./maillist ./var/lib/mysql/test/maillist.txt
mysql
use test;
#delete all record from tabel maillist
delete from maillist;
#only load the mail name into the table maillist
load data infile 'maillist.txt' into table maillist(mailname);
quit;
echo "ok!!!!!!!!"
exit 1
else
echo "failed!!!!"
###----file end
###########################################

改变文件为可执行文件。(我想可能此文件不能正常执行。因为我想在执行mysql后shell 将跑到mysql的shell环境中)
测试执行果然反映语法错误load data 这条。
注销此条后,果然进入mysql的shell中。后面的命令不能再执行下去,请教各位高手如果要实现此想法,请问有何妙着。谢谢!

      
支持一下

if [ -f maillist ]; then
cp ./maillist ./var/lib/mysql/test/maillist.txt

echo << END > temp.sql
use test;
delete from maillist;
load data infile 'maillist.txt' into table maillist(mailname);
quit;
END

mysql test < temp.sql
echo "ok!!!!!!!!"
exit 1
else
echo "failed!!!!"
###----file end      
挑点小小的毛病,请别介意.
shell编程惯例是成功时exit 0而不是1.      
谢谢上面的二位兄弟:
现我改写了文件:
  一个是MYSQL的脚本:LOADMAIL.SQL
内容如下:
# filename: loadmail.sql
# flyfan 2002/6/28
# this is a sql file
# call by the shell file loadmail.shl
use test;
delete from maillist;
load data infile 'maillist.txt' into table maillist(mailname);
quit
# ## sql end
一个是loadmail.shl脚本:
#this file is a shl program code                 #
#load the maillist to the mysql database,         #
#and delete the old mailname                         #
#fanfly 2002-6-26                                 #
#                                                 #
##################################################

if [ -f maillist ] then
cp ./maillist ./var/lib/mysql/test/maillist.txt

#echo << END > loadmail.sql
#use test;
#delete from maillist;
#load data infile 'maillist.txt' into table maillist(mailname);
#quit;
#END

mysql test <loadmail.sql
echo "ok!!!!!!!!"
exit 0
else
echo "failed!!!!"
exit 1
###----file end
endif

单独执行shl文件中的各个命令ok!
包括mysql test<loadmail.sql
但是执行:./loadmail.shl
时出错:syntax error near unexpected token else
回头检查了几次,但没发现其它什么问题,请各位大侠帮忙检查一下,是否有其它问题。
谢谢!      
if [ -f maillist ]; then