小编XJD*_*HDR的帖子

Bash 脚本不等待 wget 完成下载

我正在使用以下 bash 脚本将各种 gzip 档案合并在一起:

wget -O bluelvl1.gz http://list.iblocklist.com/?list=ydxerpxkpcfqjaybcssw&fileformat=p2p&archiveformat=gz
wget -O bluelvl2.gz http://list.iblocklist.com/?list=gyisgnzbhppbvsphucsw&fileformat=p2p&archiveformat=gz
wget -O badpeer.gz http://list.iblocklist.com/?list=cwworuawihqvocglcoss&fileformat=p2p&archiveformat=gz
wget -O microsoft.gz http://list.iblocklist.com/?list=xshktygkujudfnjfioro&fileformat=p2p&archiveformat=gz
wget -O unallocated.gz http://list.iblocklist.com/?list=gihxqmhyunbxhbmgqrla&fileformat=p2p&archiveformat=gz
cat bluelvl1.gz bluelvl2.gz badpeer.gz microsoft.gz unallocated.gz > blocklist.p2p.gz
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是“cat”命令正在创建没有任何内容的“blocklist.p2p.gz”。我认为问题是由于 Bash 没有等待 wget 完成下载造成的。

我相信这一点,因为如果我一次将每一行复制粘贴到命令提示符中(并亲自等待下载完成),Cat 会按照我的预期创建一个合并的存档。如果我从脚本中复制上面的所有六行,然后将全部内容粘贴到同一个命令提示符中,我会看到脚本遇到的相同问题。

那么有没有办法让 Bash 等待 wget 完成呢?Bash 是否应该在默认情况下等待并且某些原因导致这种情况不会发生?我将不胜感激一个解决方案。

编辑:根据下面的评论,要使用的正确脚本是:

wget -O bluelvl1.gz "http://list.iblocklist.com/?list=ydxerpxkpcfqjaybcssw&fileformat=p2p&archiveformat=gz"
wget -O bluelvl2.gz "http://list.iblocklist.com/?list=gyisgnzbhppbvsphucsw&fileformat=p2p&archiveformat=gz"
wget -O badpeer.gz "http://list.iblocklist.com/?list=cwworuawihqvocglcoss&fileformat=p2p&archiveformat=gz"
wget -O microsoft.gz "http://list.iblocklist.com/?list=xshktygkujudfnjfioro&fileformat=p2p&archiveformat=gz"
wget -O unallocated.gz "http://list.iblocklist.com/?list=gihxqmhyunbxhbmgqrla&fileformat=p2p&archiveformat=gz"
cat bluelvl1.gz bluelvl2.gz badpeer.gz microsoft.gz unallocated.gz > blocklist.p2p.gz
Run Code Online (Sandbox Code Playgroud)

linux bash wget

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

bash ×1

linux ×1

wget ×1