我有一个巨大的文件,其中包含许多可下载各种类型文件的链接。每行都是一个下载命令,如:
wget'URL1'
wget'URL2'
...
并且有成千上万的人。
不幸的是,有些网址看起来很丑陋,例如: http://www.cepa.org.gh/archives/research-working-papers/WTO4%20(1)-charles.doc 它在浏览器中打开,但混淆了wget。
我收到了一个错误:
./ tasks001.sh:line 35:意外标记“1”附近的语法错误
./ tasks001.sh:35行:'wget'http://www.cepa.org.gh/archives/research-working-papers/WTO4%20(1)-charles.doc''
我尝试了指定下载内容的网址和“网址”。
有没有办法让像这样的脚本无人值守? 我很好,如果它只是跳过它无法下载的文件。
答案 0 :(得分:6)
不要(ab)使用shell。
将您的网址保存到某个文件(例如my_urls.lst)并执行:
wget -i my_urls.lst
Wget将自己处理引用等
答案 1 :(得分:1)
我认为你需要在网址周围使用双引号(“)而不是单引号(')。
如果仍然无效,请尝试使用反斜杠转义填充字符(
和)
:\(
和\)
你使用的是哪个shell?击? zsh的?
答案 2 :(得分:0)
这并不能完全回答你的问题,但是:
以下两个命令都直接在bash shell中起作用:
wget "http://www.cepa.org.gh/archives/research-working-papers/WTO4%20(1)-charles.doc"
和
wget 'http://www.cepa.org.gh/archives/research-working-papers/WTO4%20(1)-charles.doc'
你能检查一下这些是否适合你?
答案 3 :(得分:0)
似乎正在发生的事情是你的shell正在使用(字符。我会尝试在你的网址周围使用双引号“而不是单引号”。
如果您希望抑制错误,可以使用unix下的> / dev / null重定向标准输出或2> / dev / null重定向标准错误。在其他操作系统下,它可能是其他东西。