bash: wget 在循环中,奇怪的地址
bash: wget in a loop, strange addresses
我写了一个小 bash 脚本,它根据插件名称列表从 wordpress 插件目录下载插件。它有效,但似乎 wget 被调用的次数比使用奇怪参数所需的次数多。
#!/bin/bash
pluginlist="list" #plugin list, line by line
outputdir="output"
urlprefix="http://downloads.wordpress.org/plugin"
ua="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4"
if [ ! -f "$pluginlist" ]; then
echo List \file "$pluginlist" does not exist\!;
exit
fi
while read plugin_name; do
wget -U $ua -O $outputdir/$plugin_name."zip" $urlprefix/$plugin_name."zip"
done <$pluginlist
echo \done
示例输出:
--2015-11-23 22:47:45-- http://(x11;/
Resolving (x11; ((x11;)... failed: Name or service not known.
wget: unable to resolve host address ‘(x11;’
--2015-11-23 22:47:45-- http://u;/
Resolving u; (u;)... failed: Name or service not known.
wget: unable to resolve host address ‘u;’
--2015-11-23 22:47:45-- http://linux/
Resolving linux (linux)... failed: Name or service not known.
wget: unable to resolve host address ‘linux’
--2015-11-23 22:47:45-- http://i686;/
Resolving i686; (i686;)... failed: Name or service not known.
wget: unable to resolve host address ‘i686;’
--2015-11-23 22:47:45-- http://en-us;/
Resolving en-us; (en-us;)... failed: Name or service not known.
wget: unable to resolve host address ‘en-us;’
--2015-11-23 22:47:51-- ftp://rv/1.8.1.6)
=> ‘output/add-meta-tags.zip’
Resolving rv (rv)... failed: Name or service not known.
wget: unable to resolve host address ‘rv’
--2015-11-23 22:47:56-- http://gecko/20070802
Resolving gecko (gecko)... failed: Name or service not known.
wget: unable to resolve host address ‘gecko’
--2015-11-23 22:47:56-- http://seamonkey/1.1.4
Resolving seamonkey (seamonkey)... failed: Name or service not known.
wget: unable to resolve host address ‘seamonkey’
--2015-11-23 22:48:06-- http://downloads.wordpress.org/plugin/add-meta-tags.zip
Resolving downloads.wordpress.org (downloads.wordpress.org)... 66.155.40.188, 66.155.40.186, 66.155.40.187, ...
Connecting to downloads.wordpress.org (downloads.wordpress.org)|66.155.40.188|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://downloads.wordpress.org/plugin/add-meta-tags.zip [following]
--2015-11-23 22:48:07-- https://downloads.wordpress.org/plugin/add-meta-tags.zip
Connecting to downloads.wordpress.org (downloads.wordpress.org)|66.155.40.188|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 271770 (265K) [application/zip]
Saving to: ‘output/add-meta-tags.zip’
output/add-meta-tag 100%[=====================>] 265.40K 182KB/s in 1.5s
2015-11-23 22:48:09 (182 KB/s) - ‘output/add-meta-tags.zip’ saved [271770/271770]
FINISHED --2015-11-23 22:48:09--
Total wall clock time: 25s
Downloaded: 1 files, 265K in 1.5s (182 KB/s)
所以它在得到正确的地址之前得到了很多奇怪的地址。我不知道为什么会这样。
您需要引用您的用户代理字符串:
wget -U "$ua" -O $outputdir/$plugin_name."zip" $urlprefix/$plugin_name."zip"
否则,bash 会将其拆分为空格并将其作为多个参数传递给 wget
...它试图将其视为 URL。
我写了一个小 bash 脚本,它根据插件名称列表从 wordpress 插件目录下载插件。它有效,但似乎 wget 被调用的次数比使用奇怪参数所需的次数多。
#!/bin/bash
pluginlist="list" #plugin list, line by line
outputdir="output"
urlprefix="http://downloads.wordpress.org/plugin"
ua="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4"
if [ ! -f "$pluginlist" ]; then
echo List \file "$pluginlist" does not exist\!;
exit
fi
while read plugin_name; do
wget -U $ua -O $outputdir/$plugin_name."zip" $urlprefix/$plugin_name."zip"
done <$pluginlist
echo \done
示例输出:
--2015-11-23 22:47:45-- http://(x11;/
Resolving (x11; ((x11;)... failed: Name or service not known.
wget: unable to resolve host address ‘(x11;’
--2015-11-23 22:47:45-- http://u;/
Resolving u; (u;)... failed: Name or service not known.
wget: unable to resolve host address ‘u;’
--2015-11-23 22:47:45-- http://linux/
Resolving linux (linux)... failed: Name or service not known.
wget: unable to resolve host address ‘linux’
--2015-11-23 22:47:45-- http://i686;/
Resolving i686; (i686;)... failed: Name or service not known.
wget: unable to resolve host address ‘i686;’
--2015-11-23 22:47:45-- http://en-us;/
Resolving en-us; (en-us;)... failed: Name or service not known.
wget: unable to resolve host address ‘en-us;’
--2015-11-23 22:47:51-- ftp://rv/1.8.1.6)
=> ‘output/add-meta-tags.zip’
Resolving rv (rv)... failed: Name or service not known.
wget: unable to resolve host address ‘rv’
--2015-11-23 22:47:56-- http://gecko/20070802
Resolving gecko (gecko)... failed: Name or service not known.
wget: unable to resolve host address ‘gecko’
--2015-11-23 22:47:56-- http://seamonkey/1.1.4
Resolving seamonkey (seamonkey)... failed: Name or service not known.
wget: unable to resolve host address ‘seamonkey’
--2015-11-23 22:48:06-- http://downloads.wordpress.org/plugin/add-meta-tags.zip
Resolving downloads.wordpress.org (downloads.wordpress.org)... 66.155.40.188, 66.155.40.186, 66.155.40.187, ...
Connecting to downloads.wordpress.org (downloads.wordpress.org)|66.155.40.188|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://downloads.wordpress.org/plugin/add-meta-tags.zip [following]
--2015-11-23 22:48:07-- https://downloads.wordpress.org/plugin/add-meta-tags.zip
Connecting to downloads.wordpress.org (downloads.wordpress.org)|66.155.40.188|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 271770 (265K) [application/zip]
Saving to: ‘output/add-meta-tags.zip’
output/add-meta-tag 100%[=====================>] 265.40K 182KB/s in 1.5s
2015-11-23 22:48:09 (182 KB/s) - ‘output/add-meta-tags.zip’ saved [271770/271770]
FINISHED --2015-11-23 22:48:09--
Total wall clock time: 25s
Downloaded: 1 files, 265K in 1.5s (182 KB/s)
所以它在得到正确的地址之前得到了很多奇怪的地址。我不知道为什么会这样。
您需要引用您的用户代理字符串:
wget -U "$ua" -O $outputdir/$plugin_name."zip" $urlprefix/$plugin_name."zip"
否则,bash 会将其拆分为空格并将其作为多个参数传递给 wget
...它试图将其视为 URL。