#!/bin/bash
#判断给定参数个数
if [ $# -ne 2 ];then
echo "Usage:$0 "
exit 1
fi
#获取一个参数前6个字符,如果不是ftp://,即非法ftp URL格式
header=$(echo $1 | cut -c 1-6)
if [ "$header" != "ftp://" ];then
echo "$0:Invalid ftp URL.">&2
exit 1
fi
#合法ftp URL:ftp://ftp.myserver.com/download/test.tar.gz
#cut命令通过/字符分隔符,其中-f3,取第3个域server
#在取文件时,cut命令通过/字符分隔符,其中-f4-将从第4个字段开始的后面所有字段;
#basename命令取得filename的文件部分
server=$(echo $1 | cut -d / -f3)
filename=$(echo $1 | cut -d / -f4-)
basefile=$(basename $filename)
echo $basefile
ftpuser=$2
#stty -echo,后面输入密码不会显示,再输入密码之后,需要再重新打开该选项,以便后面
输入可以恢复显示
echo -n "Password for $ftpuser:"
stty -echo
read password
stty echo
echo ""
echo ${0}:Download $basefile from server $server
#here文档,执行ftp命令
ftp -n << EOF
open $server
user $ftpuser $password
get $filename $basefile
quit
EOF
#$?上一个进程的退出值,0表示成功
if [ $? -eq 0 ];then
ls -l $basefile
fi
exit 0
测试:
>./ftp.sh ftp://ftp.server.com/download/test.tar.gz mark
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26855487/viewspace-773599/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26855487/viewspace-773599/