现在要求写一个程序,接受命令行给定一个网址去下载一个文件,要求根据网址的协议的不同,采用不同的程序下载。
如果给定的网址以.xml结尾,则认为要下载的文件已经在给定的网址中指定,否则要下载的文件名为本机的mac地址加.xml扩展名,不包括mac中的冒号。
#!/bin/bash
url=$1
proto=${url%%://*}
mac_addr=$(ifconfig eth0 | grep HWaddr|awk '{print $NF}'|tr -d :
[ -z "${url##*.xml}" ] || url=$url/$mac_addr.xml
if [ $proto == "http" ] || [ $proto == "ftp" ]
then
echo "wget $url -O local_file"
else
tmp=${url#*://}
host=${tmp%%/*}
remote_file=${tmp#*/}
echo "tftp -g -r $remote_file -l locate_file $host"
fi
exit 0
==========测试===============
root@client.example.com # ./getPro.sh http://hostname.com/onepath/anotherpath
wget http://hostname.com/onepath/anotherpath/0015C5F146A2.xml -O local_file
root@client.example.com # ./getPro.sh tftp://hostname.com/onepath/anotherpath
tftp -g -r onepath/anotherpath/0015C5F146A2.xml -l locate_file hostname.com
root@client.example.com # ./getPro.sh tftp://hostname.com/onepath/anotherpath.xml
tftp -g -r onepath/anotherpath.xml -l locate_file hostname.com
root@client.example.com #