Shell脚本实现批量下载资源并保留原始路径_linux shell

示例资源列表
如url.txt:

复制代码 代码如下:

http://su.bdimg.com/static/superplus/img/logo_white_ee663702.png
http://su.bdimg.com/static/superplus/img/logo_white_ee663703.png
http://su.bdimg.com/static/superplus/img/logo_white_ee663701.png
http://su.bdimg.com/static/superplus/img/logo_white_ee663704.png
http://su.bdimg.com/static/superplus/img/logo_white_ee663705.png
http://su.bdimg.com/static/superplus/img/logo_white_ee663706.png

我们需要下载这些图片,并保存在各自的文件夹下。

脚本如下

如download.sh

复制代码 代码如下:

#!/bin/bash
# desc: download resource
# author: 十年后的卢哥哥

mydir=`pwd`

while read line
do
{
    if [ -n "$line" ]
    then
        cd $mydir
        url=$(echo "$line" | tr -d '\r')
        picdir=$(echo $url | sed -r 's/http:\/\///g')
        picname=$(echo ${picdir##*/})
        picpath=$(echo ${picdir%/*})
        mkdir -p $picpath
        cd $picpath
        wget -O $picname `echo $url`
    fi
}
done < $1
exit 0

这里有几点要注意:

1、为了去掉文本文件中行末的换行符,要进行删除:

复制代码 代码如下:

tr -d '\r'

2、取资源名:

复制代码 代码如下:

${picdir##*/}

3、取资源路径:

复制代码 代码如下:

${picdir%/*}

运行

复制代码 代码如下:

sh download.sh url.txt

时间: 2024-08-04 09:59:47

Shell脚本实现批量下载资源并保留原始路径_linux shell的相关文章

shell脚本实现批量采集爱站关键词库_linux shell

shell批量采集爱站关键词库,心血来潮写着玩的,还不完善,先放出来,后期慢慢更新,功能虽然简单,同类工具也很多现成的,但毕竟是自己写出来的工具,感觉还是很不一样滴! 复制代码 代码如下: for i in $(seq 1 50);do curl -s http://baidurank.aizhan.com/baidu/jiameng.com/$i/position/|grep -a 'class="zhishu"'|sed 's/<a target="_blank&q

shell脚本实现批量测试局域网主机是否在线_linux shell

由于局域网内主机多,VLAN也多,为时常能知道在线主机的数量,编写脚本以查验在线主机. 效果是:主机在线显示绿色,主机离线显示红色结果. 用法:./ping IP段    例如:./ping 192.168.0 复制代码 代码如下: #!/bin/bash NETWORK=$1 for HOST in $(seq 1 254) do         ping -c 1 -w 1 $NETWORK.$HOST &>/dev/null && result=0 || result=

Shell脚本检查IP格式及mysql操作实例_linux shell

还是cronjob的一部分,就是在Rails的定时任务里,后台交互运行 CheckIPAddress() { echo $1 |grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" > /dev/null if [ $? = 1 ]; then return 1 else a=`echo $1 | awk -F. '{print $1}'` b=`echo $1 | awk -F. '{print $2}'

Shell脚本实现C语言代码行数统计_linux shell

写了一个比较粗糙的C语言代码行数统计脚本,目前还有些bug,而且效率也不高.脚本主要就是去除大部分的注释后统计行数,相当于做了一部分预处理的工作.下面是代码: #!/bin/bash filename=$1 echo "`whoami`" if [ $# -lt 1 ];then echo "usage : ./scripts filename" exit -1 fi if [ ! -f $filename ];then echo "$filename i

Shell脚本传递参数的3种方法比较_linux shell

#!/bin/bash #extracting command text_text_text_line options as parameters help_info(){ echo "NAME" echo "\t$0" echo "SYNOPSIS" echo "\t$0 is a shell test about process options" echo "DESCRIPTION" echo &quo

shell脚本实现监控shell脚本的执行流程及变量的值_linux shell

很多时候,我们都会写shell程序来完成一些不用重复造轮子的时刻,但是,又因为shell语句中也会有函数,也会有变量,在运行后到底执行了哪些相关的操作,就需要对具体执行过程中的变量等可变的因素的监控,那么我们下面就写个小小的shell例子,来完成这个对执行过程中条件语句中的变量的变化的监控和整个程序的执行流程的观察. shell程序代码: 复制代码 代码如下: #!/bin/bash function setlogfile {     if ! [ -z "$1" ]; then   

Shell脚本定时备份清除运行系统日志的代码_linux shell

一.写备份并清除老日志Shell脚本: 复制代码 代码如下: #!/bin/sh#backup eoslog#author rhao#date 2008-12-27 #定义环境变量EOS_HOME=/home/eosSAS_HOME=/home/eos/SAS # 测试主辅结点if test -d '/home/eos/SAS/SAS1_web1'then        SAS_LOG_HOME=$SAS_HOME/SAS1_web1/SAS_Domain/binelse        SAS_

Shell脚本实现查杀子进程、僵尸进程_linux shell

核心服务器上跑了一堆的脚本.程序,难免有时候会出现僵尸进程,死不死活不活的在那里占用资源,最初只是写了个根据关键字查杀进程的linux shell脚本,后来发现很多时候进程死在那里的时候其实是内部调用子进程的时候出现了问题,这时候光杀父进程根本没解决根本问题.比如说rsync的时候通过ssh来连接,rsync本身没问题,但可能ssh死掉了.因此重新写了脚本,递归查找子进程. 复制代码 代码如下: #!/bin/sh # 递归找到导致进程僵死的最底层子进程并杀除. ParentProcessID=

Shell脚本实现监控rsync数据是否传输完_linux shell

今天有台服务器a要把网站程序全部传输到另外一台服务器b上去,但离下班时间就只有1个小时了,为了准时下班,简单写了个shell脚本来监控是否有传输完,我先在服务器a上看了下网站程序总大小为12G,用du -sm查看也就是11517,服务器也不会有人再传东西上去了,所以我可以放心容量不会再变大了. 系统:centos 5.x 需要的软件:rsync 脚本内容: 复制代码 代码如下: #!/bin/bash file=`du -sm /var/www/vhosts/|awk '{print $1}'`