求助:shell下的fpt问题

求助:shell下的fpt问题

我在写一个ftp的脚本时发现,如果要用ftp采集文件时,以下脚本可用。
部分程序如下:
  echo "get all files start"
  ftp -i -n $SOURCE_HOST<<FTPIT
  user $SOURCE_USER_NAME $SOURCE_PASS_WORD
  $MODE
  cd $SOUREC_DIR
  lcd $DEST_DIR
  mget *
  quit
  FTPIT
  echo "get all files end"
但是当我把这部分脚本写入函数时,再调用函数,运行时报不是预期的结束
部分程序如下:
  .
  .
get_all_files $SOURCE_HOST $SOURCE_PWD_LOCAL $LOCALTMP
  .
  .
函数定义如下:
get_all_files()
{
  #to call:get_all_files  $SOURCE_HOST  $SOURCE_DIR  $DEST_DIR
  #mget all files in SOURCE_DIR at SOURCE_HOST to DEST_DIR(local)
  
  _SOURCE_HOST=$1
  _SOURCE_DIR=$2
  _DEST_DIR=$3
  echo "get all files start"
  ftp -i -n $_SOURCE_HOST<<FTPIT
  user $SOURCE_USER_NAME $SOURCE_PASS_WORD
  $MODE
  cd $_SOUREC_DIR
  lcd $_DEST_DIR
  mget *
  quit
  FTPIT
  echo "get all files end"
}

不知是何原因,请高手指点。      
你的 MODE 变量是什么? 是不是没有关掉 prompt ?      
MODE=binary
应该与prompt无关,因为如果ftp不写入函数就没有问题      
将下面的语句用eval " "括起来

eval "
ftp -i -n $_SOURCE_HOST<<FTPIT
user $SOURCE_USER_NAME $SOURCE_PASS_WORD
$MODE
cd $_SOUREC_DIR
lcd $_DEST_DIR
mget *
quit
"