bash - 使用 shell 命令从网站上抓取/下载 mp3 文件
问题描述
首先,这不是作业,这是一个切线项目,可以帮助我了解 shell 知识。我正在尝试制作一个简单的 shell 脚本,当给定命令的文本文件时,它会按顺序运行每个命令,直到完成之前的命令。
到目前为止,我想出了:
#!/bin/bash
input="/home/gome/Downloads/darknetdiaries.txt"
while IFS= read -r line
do
echo "$line"
$line
done < "$input"
在单独的文本文件中,我有:
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep10-wiretap-mishap.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep11-buyout.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep12-cryptowars.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep13-carna.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep14-opjustina2.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep15-illtill.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep16-eijah.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep17-finn.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep18-jackpot.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep19-aurora.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep1-pbx-hacking.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep20-mobman.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep21-black-duck-eggs.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep22-ministories1.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep23-levin.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep24-bayonet.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep25-alberto.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep26-irs.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep27-chartbreakers.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep28-unit8200.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep29-stuxnet.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep2-vtech.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep30-shamoon.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep31-hackergiraffe.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep32-thecarder.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep33-rockyou.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep34-foryoureyesonly.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep35-carbanak.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep36-jeremyfrommarketing.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep37-lvs.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep38-dark-caracal.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep39-3alarmlampscooter.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep3-diginotar.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep40-no-parking.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep41-just-visiting.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep42-ministories-vol2.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep43-ppp.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep44-zain.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep45-xbox1.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep46-xbox2.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep47-projectraven.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep48-opsocialist.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep49-elliot.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep4-talktalk.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep50-glowing-symphony.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep51-indopak-conflict.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep52-magecart.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep53-shadowbrokers.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep54-notpetya.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep55-noirnet.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep56-jordan.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep57-ms08067.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep58-oxymonster.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep59-courthouse.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep5-asus.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep60-dawgyg.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep61-samy.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep62-cam.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep63-w0rmer.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep64-shadowphones.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep65-psyop.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep66-freakyclown.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep67-the-big-house.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep68-triton.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep69-humanhacker.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep6-jaysonstreet.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep70-ghostexodus.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep71-fdff.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep72-bangladeshbank.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep73-wannacry.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep74-mikko.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep75-compromised-comms.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep76-knavesout.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep77-olympicdestroyer.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep7-manfred-part1.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep8-manfred-part2.mp3
wget https://darknetdiaries.com/podcasts/darknet-diaries-ep9-mtgox.mp3
目前没有出现错误,但似乎只是打印出所有行而不做任何事情。这是一张图片:
我真的很感激帮助!
编辑:
上面的脚本按应有的方式工作。一个文件是您想要运行的所有命令的文本文件,另一个文件是 shell 脚本。
在文本文档中,我用暗网日记播客所有当前剧集的链接填充它:为了获得所有链接,我首先必须使用 Owasp Zap 扫描网站并整理 url。之后,只需将其弹出到一个文本文件中并在前面添加 wget 即可。
解决方案
只需在后面添加命令echo "$line"
:
#!/bin/bash
input="PATH_TO_TEXT_FILE"
while IFS= read -r line
do
echo "$line"
$line
done < "$input"
或COMMAND_on
从第二个 while 循环中删除。
推荐阅读
- vue.js - 没有不正确的 HTML 标记但得到:客户端渲染的虚拟 DOM 树与服务器渲染的内容不匹配
- javascript - 使用集合中的所有 Azure 团队项目创建下拉列表
- javascript - 使用 jest+puppeteer 和 Node.js 未定义函数的问题
- go - golang如何解析没有年份的时间,但默认为当前年份
- vue.js - 如何在 vue_app 中插入summernote?
- linux - 如何使用 linux/ovs 网桥设置 PTP 主节点
- html - 背景图像在两侧拉伸,未正确覆盖容器
- linux - 如何安装 Qt WebGL 插件
- javascript - 开发人员如何在部分之间创建动画过渡?
- log4j - 质量保证 | 关闭到控制台的日志记录(例如 INFO cqqaui.WebDriverCommandLogger - 命令:)