ftp下載指定檔案

markzy5201190發表於2013-09-29
#!/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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章