首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

shell脚本-仅当文件名在我的列表中时才使用wget下载文件

Shell脚本是一种用于自动化任务和批处理的脚本语言,常用于Unix和Linux系统中。它通过命令行解释器执行,可以执行一系列命令和操作。

在这个问答内容中,我们需要编写一个Shell脚本,只有当文件名在指定列表中时才使用wget命令下载文件。下面是一个完善且全面的答案:

代码语言:shell
复制
#!/bin/bash

# 定义文件列表
file_list=("file1.txt" "file2.txt" "file3.txt")

# 获取当前目录下的所有文件
current_files=$(ls)

# 遍历文件列表
for file in "${file_list[@]}"
do
    # 检查文件是否存在于当前目录
    if [[ " ${current_files[@]} " =~ " ${file} " ]]; then
        # 使用wget下载文件
        wget <下载链接>
    fi
done

上述脚本中,我们首先定义了一个文件列表file_list,其中包含了需要下载的文件名。然后,通过ls命令获取当前目录下的所有文件,并将结果保存在current_files变量中。

接下来,我们使用for循环遍历文件列表。在循环中,我们使用[[ " ${current_files[@]} " =~ " ${file} " ]]语句检查文件是否存在于当前目录。如果存在,就执行wget命令下载文件。

需要注意的是,上述脚本中的<下载链接>需要替换为实际的文件下载链接。

推荐的腾讯云相关产品和产品介绍链接地址:

以上是一个完善且全面的答案,涵盖了Shell脚本的概念、用途、实现方式以及相关的腾讯云产品推荐。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Ansible

command模块在远程主机中执行命令时,不会经过远程主机的shell处理,在使用command模块时,如果需要执行的命令中含比如””, “|”, “;” 和 “&” 这些符号时,这些符号的功能也会失效...dest=/var/ftp/' [root@ansible-server ~]# ansible ftp -m shell -a 'ls /var/ftp' content:此参数当不使用src指定拷贝的文件时...,是否对远程主机的文件进行备份,可选值有yes和no,当设置为yes时,会先备份远程主机中的文件,然后再将ansible主机中的文件拷贝到远程主机 owner:此参数指定文件拷贝到远程主机后的属主,但是远程主机上必须有对应的用户...playbook 与ad-hoc相比是一种完全不同的运用方式,剧本需要遵循YAML语法格式编写,文件名以”.yaml”或者”.yml”作为文件名后缀 playbook核心元素 hosts:执行的远程主机列表...,(注意:横杠后面有空格)表示我要在websrvs这组主机上进行操作,在YAML语法中,键值对需要使用冒号作为分隔,而且冒号后边必须还要有一个空格作为分隔 #第三行:remote_user关键字可以指定在进行远程操作时使用哪个用户进行操作

2.8K30

每天一个linux命令:wget命令

–egd-file=FILE 指定EGD socket的文件名 下载参数: –bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用) -t, –tries...文件的所有图片 递归下载中的包含和不包含(accept/reject): -A, –accept=LIST 分号分隔的被接受扩展名的列表 -R, –reject=LIST 分号分隔的不被接受的扩展名的列表...=LIST 分号分隔的被跟踪的HTML标签的列表 -G, –ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表 -H, –span-hosts 当递归时转到外部主机 -L, –relative...实例12:使用wget -o把下载信息存入日志文件 命令: wget -o download.log URL 说明: 不希望下载信息直接显示在终端而是在一个日志文件,可以使用 实例13:使用wget -.../configure  # make  # make install  参考资料: Linux 基础 shell脚本编程 Linux 基础 shell命令 Linux 基础 软件包管理及shell命令

2.1K20
  • WGet使用指南

    wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理. 所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。...这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。...我的用法是:在mozilla中将不方便当时下载的URL链接拷贝到内存中然后粘贴到文件filelist.txt中,在晚上要出去系统前执行上面代码的第二条。...使用代理下载 wget -Y on -p -k https://sourceforge.net/projects/wvware/ 代理可以在环境变量或wgetrc文件中设定 # 在环境变量中设定代理...指定EGD socket的文件名 下载 --bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用) -t, --tries=NUMBER

    1K10

    Linux 下让工作效率翻倍的 4 个实用技巧

    建议还没有形成自己使用习惯的读者使用我提供的版本,先用起来,在实际使用中慢慢理解,相信过不了多久就能习惯 Vim,再根据自己需求调整或重新配置。...重新开启一个终端窗口就可以使用 Vim 打开代码看看效果了: 上述界面可以看到,左侧界面是文件列表(默认不显示,F3 开/关),右侧时函数列表(默认显示,F9 开/关),可以使用CTRL + W 在各个区域之间跳转...搜索一个文件 使用 F3 呼出的文件列表,在同目录下打开文件还是比较方便的,但如果需要打开其它位置的文件还是不太方便,可以按 F5 呼出文件查找窗口,输入项目中的文件名,快速开启文件。...这就是本小节中的关键技巧所在,利用 source 命令将脚本中的函数导入当前 shell,这样脚本中的函数就可以和其他的 shell 命令一样使用了,如有其他需求,可以在 envswitch.sh 文件中增加函数即可...再谈谈 bd 命令 细心的同学可能已经发现了,其实我们之前使用的 bd 命令也只是一个才 50 多行的小脚本,我们平时在使用中也可以花时间写一些自己的小脚本,这样不断积累下来,工作效率才会不断提升,所谓磨刀不误砍柴工嘛

    63010

    WindowsLinux文件下载方式汇总

    当目标主机上安装了ncat是我们可以使用ncat来实现文件下载,当然这种场景在实战中少之又少~ 首先,我们在本地使用nc起一个监听,并传递我们想要传输的文件名称: nc -lvp 4444 在终端运行该perl文件即可: ? Ruby 当目标主机内安装了Ruby时,我们可以在终端使用vim来编辑一个Ruby脚本,之后执行Ruby来实现远程文件下载: #!ruby #!...成功下载文件到本地 ? PHP 当目标主机内安装了Ruby时,我们可以在终端使用vim来编辑一个PHP脚本,之后执行PHP来实现远程文件下载: <?...Python Python是目前很受欢迎的主流脚本语言,当目标主机内安装了python时,我们可以在shell中使用python来实现远程文件下载: Type "help", "copyright",...当目标主机上安装了ncat是我们可以使用ncat来实现文件下载,当然这种场景在实战中少之又少~ 首先,我们在本地使用nc起一个监听,并传递我们想要传输的文件名称: nc -lvp 4444 < evil.sh

    2K50

    Zabbix发送带附件的邮件

    Zabbix告警由于内容主体有诸多限制,很难传达所有的告警信息,可以通过添加附件的方式将详细信息发送给接收人,比如说要发送的文件存在apache文件服务器中,这个文件内容每隔一段时间会变动,我们可以将文件链接放在消息主体中...,当shell脚本接收到消息主体参数时,解析出其中的链接,并将内容下载到缓存文件中,然后将该文件以附件的方式随邮件一起发送出去。...#将文件下载到指定目录中 wget -P /usr/lib/zabbix/alertscripts $http else wget -P /usr/lib/zabbix/alertscripts $http...rm $fileDir 当触发器被触发时,收到带附件的邮件 ?...备注:由于shell脚本存在删除操作,所以一定要记得给文件以及文件所在的文件夹添加zabbix用户权限

    66230

    Linux运维必须要掌握的命令

    ,路由表 -e:显示扩展信息,例如uid等 -s:按各个协议进行统计 -c:每隔一个固定时间,执行该netstat命令 3.5 wget 语法:wget(选项)(参数) 功能:用来从指定的URL下载文件...参数: -a文件>:在指定的日志文件中记录资料的执行过程 -A:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔 -b:进行后台的方式运行wget -B:设置参考的连接地址的基地地址...>:作为文件“.wgetrc”中的一部分执行指定的指令 -h:显示指令帮助信息 -i文件>:从指定文件获取要下载的URL地址 -l列表>:设置顺着的目录列表,多个目录用“,”分隔 -L:仅顺着关联的连接...-r:递归下载方式 -nc:文件存在时,下载文件不覆盖原有文件 -nv:下载时只显示更新和出错信息,不显示指令的详细执行过程 -q:不显示指令执行过程 -nh:不查询主机名称 -v:显示详细执行过程...则会同时检查所有的文件系统 -r:采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式 -R:当搭配”-A”参数使用时,则会略过/目录的文件系统不予检查 -s:依序执行检查作业,而非同时执行

    1.1K10

    Linux笔记

    ) 语法 grep [选项] 模式 文件名 选项说明: -c:仅列出文件中包含模式的行数(统计) -i:忽略模式中的字母大小写 -l:列出带有匹配行的文件名 -n:在每一行的最前面列出行号...,sed 会按照此规则来编辑数据 sed 会根据脚本命令来处理文本文件中的数据,这些命令要么从命令行中输入,要么存储在一个文本文件中,此命令执行数据的 顺序如下: 每次仅读取一行内容;...gzip [选项] 源文件 命令中的源文件,当进行压缩操作时,指的是普通文件;当进行解压缩操作时,指的是压缩文件 选项说明: -c:将压缩数据输出到标准输出中,并保留源文件 -d:对压缩文件进行解压缩...;一个组中可以有多个用户,一个用户也可以属于不同的组 当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组 用户要访问属于附加组的文件时...需要注意的是,在删除软件之前,应先将软件停止服务 rm -rf /usr/local/软件名称 wget 语法: wget [选项] URL 选项说明: -O 文件名:下载并以不同的文件名保存

    1.5K30

    linux两台服务器之间传输文件和文件夹

    目标主机需要事先打开rcp功能,并设置好rcp的权限:把源主机加入到可信任主机列表中,否则无法在源主机上使用rcp远程复制文件到目标主机。...仅当希望将remote_hostname上的remote_file放到其他目录(远程主目录除外)下时,才需要为其指定完整的(绝对)路径。...如果仅提供了远程主机名,rcp 将把 test1 复制到远程主目录下,名称仍为 test1 。 还可以在目的目录中包含文件名。...】 wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。...使用双冒号分割主机名和文件路径时,是使用rsync服务器,这里不做介绍。

    9.1K71

    UNIX 高手的 10 个习惯

    ,然后才解压缩它,养成使用 -C 的习惯则更加可取——当存档文件位于其他某个位置时尤其如此。...仅当另一个命令返回零退出状态时才运行某个命令 使用 && 控制操作符来组合两个命令,以便仅当 第一个命令返回零退出状态时才运行第二个命令。换句话说,如果第一个命令运行成功,则第二个命令将运行。...仅当另一个命令返回非零退出状态时才运行某个命令 类似地,|| 控制操作符分隔两个命令,并且仅当第一个命令返回非零退出状态时才运行第二个命令。换句话说,如果第一个命令成功,则第二个命令不会运行。...当您在命令列表中重新定义环境变量,并且您不希望将那些定义应用于当前 Shell 时,使用 Subshell 更可取。...仅当您使用带多个筛选选项之一的 cat 时,才真正有必要在管道前首先执行连接。 结束语:养成好习惯 最好检查一下您的命令行习惯中的任何不良的使用模式。

    1.2K90

    从七个字符长度的任意命令执行到GetShell

    分析 直接写shell是不可能的,因为 1=echo 1>1 都8个字符了,已经超了 下载一个shell也是不可行的,1=wget a.cn也超了。 所以需要想其他的办法。...可以利用的就只有文件名了。 利用文件名是否可以getshell呢?? 刚想到这里,yichin说这样1=ls >a,能否有办法写入个shell呢? 这句话一下子惊醒我了,我顿时明白了这里面套路。...是echo 一个shell到php文件,还是用wget下载一个shell呢。 经过我的测试 ,我发现echo一个shell貌似不行或者说很麻烦,搞了好久也没成功,主要是php语句换行的问题。...所以接下来我只需要把这个sh文件的每一行都存为一个文件名,然后ls >a,sh a,就坐等shell了。...ls -t列出来的文件顺序是:最后创建的文件在最前面,所以我们创建文件的时候要先创建最后一行1.php,最后创建文件wget\ 给个python写的POC: #!

    48020

    Shell(Linux)常用命令

    在windows系统中见到的桌面即explorer.exe(资源管理器)是图形shell,而cmd就是命令行shell(Command shell)。...-r 递归复制目录 -p 保留原有文件或目录属性 -i 覆盖文件之前先询问用户 -u 当源文件比目的文件修改时间新时才复制 -v 显示复制信息 示例: 复制目录: # cp -rf test...参数: -b 目标文件存在创建备份,备份文件是文件名跟~ -u 当源文件比目的文件修改时间新时才移动 -v 显示移动信息 示例: 移动文件: # mv a.txt /opt 重命名文件: # mv...-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。 -v 执行是时显示详细的信息。 -z 仅显示压缩文件的备注文字。 -a 对文本文件进行必要的字符转换。...-D, –domains=LIST 逗号分隔被下载域的列表 –exclude-domains=LIST 排除不被下载域的列表 ​ 示例: 下载单个文件到当前目录: # wget http:

    3.2K30

    实力解剖一枚挖矿脚本,风骚操作亮瞎双眼

    直到统一的监控脚本接管了这几台机器,异常情况才得以浮出水面。最后发现了多个奇奇怪怪的进程,发现是一个挖矿脚本。下载下来学习了一下,发现脚本的编写者,有着较高的水平。...像我们平常用的bash、zsh等,属于sh的超集,这个脚本使用sh作为执行的shell,具有更好的可移植性。...[[ ]]是shell中内置的一个命令,支持字符串的模式匹配。使用=~的时候,甚至支持shell的正则表达式,强大的令人发指。它的输出结果是一个bool类型,所以能够使用||进行拼接。...,如果判断文件大小不一致,那么就重新下载一个。...shell中的函数,看起来比较怪异,后面的参数传递,就像是脚本传递一样,传送给函数。

    87720

    Linux操作的10个好习惯

    ,然后才解压缩它,养成使用 -C 的习惯则更加可取——当存档文件位于其他某个位置时尤其如此。...仅当另一个命令返回零退出状态时才运行某个命令 使用 && 控制操作符来组合两个命令,以便仅当 第一个命令返回零退出状态时才运行第二个命令。换句话说,如果第一个命令运行成功,则第二个命令将运行。...仅当另一个命令返回非零退出状态时才运行某个命令 类似地,|| 控制操作符分隔两个命令,并且仅当第一个命令返回非零退出状态时才运行第二个命令。换句话说,如果第一个命令成功,则第二个命令不会运行。...当您在命令列表中重新定义环境变量,并且您不希望将那些定义应用于当前 Shell 时,使用 Subshell 更可取。...仅当您使用带多个筛选选项之一的 cat 时,才真正有必要在管道前首先执行连接。 结束语:养成好习惯 最好检查一下您的命令行习惯中的任何不良的使用模式。

    1K30

    使用Shell脚本实现FTP自动上传和下载文件

    在日常备份数据时,省时的方法是在后台通过ftp传输数据,可以尝试以下的操作方式。...登录FTP实现下载文件功能 FTP服务器:192.168.0.199 FTP路径:/ftphome/data 本地路径:/local/data 将文件从FTP下载到本地的脚本如下: 批量下载脚本代码...-g:禁用文件名中的元字符拓展,即取消全局文件名。 -i :关闭多文件传输中的交互式提示。 -n:防止在起始连接中的自动登录。...(这里表示在/ftphome/getDownloadData的文件夹下): lcd /ftphome/getDownloadData 切换交互式提示 prompt 使用mget或mput时,prompt...当shell看到的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。因此分界符可以是定义的任何字符串。

    6.2K32

    jscript调用bat注意事项

    ) endlocal 在开启“EnableDelayedExpansion”中,使用!!...布尔值,表示在继续执行脚本中的下一条语句之前,脚本是否等待执行完程序。如果设为 true,则在执行完程序后才执行脚本,Run 方法返回由程序返回的任何错误代码。...如果某个文件类型已正确注册到某个程序中,则对该类型的文件调用 Run 方法时将执行该程序。...在调用bat的时候可以传递参数,上面的param1、param2就是传入的参数,在bat中通过%1、%2..%n进行获取。....3-默认...5-最大) -x 排除指定的文件 x@列表> 排除指定列表文件中的文件 n文件> 仅包含指定的文件 n@ 从标准输入设备读取文件名到包括 n@列表> 在指定的文件列表包括文件 例:

    99730

    Linux下使用Shell脚本实现FTP自动上传和下载文件

    登录FTP实现下载文件功能 FTP服务器:192.168.0.199 FTP路径:/ftphome/data 本地路径:/local/data 将文件从FTP下载到本地的脚本如下: 批量下载脚本代码...-g:禁用文件名中的元字符拓展,即取消全局文件名。 -i :关闭多文件传输中的交互式提示。 -n:防止在起始连接中的自动登录。...当传输很大的文件时,如果FTP已显示这种信息,表示传输正在进行。hash命令是一个布尔变量式的命令,用hash命令打开显示#开关,再用hash命令关闭显示。...(这里表示在/ftphome/getDownloadData的文件夹下): lcd /ftphome/getDownloadData 切换交互式提示 prompt 使用mget或mput时,prompt...当shell看到的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。因此分界符可以是定义的任何字符串。

    10.5K02

    Linux超级漂亮的Shell

    在用户启动的所有 shell 中共享命令历史 通过扩展的文件通配符,可以不利用外部命令达到 find 命令一般展开文件名 改进的变量与数组处理 在缓冲区中编辑多行命令 多种兼容模式,例如使用 / bin.../sh 运行时可以伪装成 Bourne shell 可以定制呈现形式的提示符;包括在屏幕右端显示信息,并在键入长命令时自动隐藏 可加载的模块,提供其他各种支持:完整的 TCP 与 Unix 域套接字控制...,FTP 客户端与扩充过的数学函数 完全可定制化 1.3 zsh 与 oh-my-zsh 终极配置 之前是因为看到这篇文章:终极 Shell——Zsh 才选择使用 zsh,被它的自动完成、补全功能吸引了...在 Github 上找关于 zsh 的项目时发现的,试用了一下觉得很方便,不用像上面文章里面提到的那么复杂,配置一些插件的名称即可使用相应的功能。...: sudo apt-get install zsh 2.2 配置 zsh zsh 的配置是一门大学问,这里不赘述,直接给出一个配置文件,大家可以下载后放入 zsh 配置文档直接使用。

    3.4K20

    Wget 大法wget 指定路径,指定文件名下载

    图片 今天用到了Wget,突然一时间想不起来wget的下载到指定目录是哪个参数了,特地把所有参数都弄来,以防又忘记了。毕竟脚本是写了之后,半年都不用改,坑!...-p 获得所有显示网页所需的元素 额外的 -c 断点续传 -nd 递归下载时不创建一层一层的目录,把所有的文件下载到当前目录 -L 递归时不进入其它主机,如wget -c -r www.tencent.org.../ -A 指定要下载的文件样式列表,多个样式用逗号分隔 -i 后面跟一个文件,文件内指明要下载的URL * 使用代理下载 wget -Y on -p -k https://sourceforge.net...可选客户端证书的KEYFILE –egd-file=FILE 指定EGD socket的文件名 * 下载 –bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP...标签的列表 -H, –span-hosts 当递归时转到外部主机 -L, –relative 仅仅跟踪相对链接 -I, –include-directories=LIST 允许目录的列表 -X,

    10.1K10
    领券