【shell 脚本】根据给定的网址来使用相应的协议下载文件

简介:
现在要求写一个程序,接受命令行给定一个网址去下载一个文件,要求根据网址的协议的不同,采用不同的程序下载。
如果给定的网址以.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 # 
相关文章
|
23天前
|
弹性计算 Shell Perl
ecs服务器shell常用脚本练习(二)
【4月更文挑战第1天】shell代码训练(二)
106 1
|
26天前
|
Java Shell
SpringBoot启动脚本Shell
SpringBoot启动脚本Shell
17 0
|
1月前
|
Shell Linux API
【Shell 命令集合 备份压缩 】Linux 解压缩文件 unzip命令 使用指南
【Shell 命令集合 备份压缩 】Linux 解压缩文件 unzip命令 使用指南
53 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 系统设置 】Linux 创建Kickstart文件mkkickstart命令 使用指南
【Shell 命令集合 系统设置 】Linux 创建Kickstart文件mkkickstart命令 使用指南
31 0
|
1月前
|
存储 Shell Linux
【Shell 命令集合 备份压缩 】Linux 解码uuencode编码的文件 uudecode 命令 使用指南
【Shell 命令集合 备份压缩 】Linux 解码uuencode编码的文件 uudecode 命令 使用指南
31 0
|
1月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
50 0
|
3天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
28 3
|
1天前
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
7 1
|
6天前
|
运维 监控 Shell
利用Shell脚本编写局域网监控软件:实时监测主机连接情况
本文介绍了如何使用Shell脚本创建一个局域网监控工具,以实时检查主机连接状态。脚本包括扫描IP地址范围检测主机可达性及使用`netstat`监控ESTABLISHED连接。此外,还展示了如何每60秒将连接数数据自动提交到指定网站API,以便实时跟踪网络活动。这个自动化监控系统有助于提升网络安全性和故障排查效率。
26 0
|
7天前
|
Shell
Shell脚本之流程控制语句
Shell脚本之流程控制语句