当前位置:  操作系统/服务器>linux

使用curl递归下载软件脚本分享

    来源: 互联网  发布时间:2014-10-15

    本文导语:  代码如下:#!/bin/env bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbinexport PATHclearUrl="http://mirrors.cnnic.cn/apache/"DownListFile="/tmp/downlist.txt"DownListTmpFile="/tmp/tmplist.txt"DownFileType="zip$|gz$"DownList=""UrlBack="$Url"[ ! -f $DownListFile ] && touch $Down...

代码如下:

#!/bin/env bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH
clear
Url="http://mirrors.cnnic.cn/apache/"
DownListFile="/tmp/downlist.txt"
DownListTmpFile="/tmp/tmplist.txt"
DownFileType="zip$|gz$"
DownList=""
UrlBack="$Url"
[ ! -f $DownListFile ] && touch $DownListFile || echo > $DownListFile
[ ! -f $DownListTmpFile ] && touch $DownListTmpFile || echo > $DownListTmpFile
CURL_URLS(){
 Urls=`curl $UrlBack |awk -F "a href="" '{printf "%sn",$2}'|awk -F """ '{printf "%sn",$1}'|grep -vE "^$|^?|^http://"|^#`
}
URL_LIST(){
 CURL_URLS
 for i in $Urls ;do
  echo "$UrlBack$i" >> $DownListTmpFile
 done
}
RECURSIVE_SEARCH_URL(){
 UrlBackTmps=`cat $DownListTmpFile`
 [[ "$UrlBackTmps" == "" ]] && echo "no more page for search" && exit 1
 for j in $UrlBackTmps ;do
  if [[ "${j##*/}" != "" ]] ;then
   echo "$j" >> $DownListFile
  else
   UrlBack="$j"
   URL_LIST
  fi
  UrlTmps=`grep -vE "$j$" $DownListTmpFile`
  echo "$UrlTmps" > $DownListTmpFile
  RECURSIVE_SEARCH_URL
 done
}
DOWNLOAD_FILE(){
 DownList=`grep -E "$DownFileType" $DownListFile`
 for k in $DownList ;do
  FilePath=/tmp/${k#*//}
  [ ! -d `dirname $FilePath` ] && mkdir -p `dirname $FilePath`
  [ ! -f $FilePath ] && cd `dirname $FilePath` && curl -O $k
 done
}
URL_LIST $Urls
RECURSIVE_SEARCH_URL

    
 
 

您可能感兴趣的文章:

  • php递归使用示例(php递归函数)
  • 使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法
  • 如何使用递归和非递归方式反转单向链表
  • PHP递归函数返回值使用实例
  • 使用python实现递归版汉诺塔示例(汉诺塔递归算法)
  • php递归函数使用return问题
  • 使用递归实现数组求和示例分享
  • 怎样使用FTP递归获取文件夹下的所有文件及子文件夹?
  • 使用递归算法求第30位数的值
  • 基于使用递归推算指定位数的斐波那契数列值的解决方法
  • php递归函数中使用return的注意事项
  • C语言使用普通循环方法和递归求斐波那契序列示例代码
  • oracle 使用递归的性能提示测试对比
  • python使用递归解决全排列数字示例
  • oracle SQL递归的使用详解
  • Java递归算法的使用分析
  • php使用递归与迭代实现快速排序示例
  • 使用go和python递归删除.ds store文件的方法
  • 概率的问题:使用递归与多次试验模拟的分析
  • PHP中的递归正则使用说明
  • shell 脚本中命令别名在脚本外无法使用
  • nohup执行的shell脚本,全局变量不能传递到脚本中使用吗?
  • 关于unix使用参数导致脚本输出异常(与脚本内直接带参数输出结果不同)
  • 如何在Linux下使用脚本实现程序的自动重启!望各位详解!
  • 大家好,我想问下有人用过"linux进程的内存使用解析"中推荐使用的"Ben Maurer写的perl脚本"查看内存么
  • 如何在使用命令行去修改系统脚本?
  • 有没有方法可以使用脚本批量修改bash环境变量
  • 如何在shell脚本中使用source命令?
  • Ubuntu下Shell脚本中[]的使用
  • 使用脚本向进程发出命令
  • linux使用shell脚本,如何创建用户,并设置用户密码?能否给出示例?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • WINDOWS下可以使用flashget来下载软件,那在linux下用什么工具软件来下载程序呢?哪里有linux平台下的下载工具可以下载?谢谢!
  • 哪里可以下载到, Windows平台下的图形化CVS客户端软件?哪种使用更方便些?
  • 使用JAVA开发WEB,软件,建设WEB服务器用哪个版本的REDHAT?在哪里下载?
  • 哪儿有linux下播放mp3的软件下载?怎么在linux下使用u盘?
  • IP地址数字互转 iis7站长之家
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍
  • 使用了QWidget的程序,如何使用后台程序启动它?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 共享内存一般是怎么使用的,是同消息队列配合使用么
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • Jsp可否使用带有GUI的JavaBean,如何使用?
  • c/c++预处理命令预#,##使用介绍
  • asp程序使用的access在Linux下如何使用!
  • 在div中使用css让文字底部对齐的方法
  • 新装的Linux使用root用户不能使用FTP?
  • Python namedtuple(命名元组)使用实例
  • LINUX下使用Eclipse,如何使用交叉编译器?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3