使用Shell脚本无法将wget屏幕输出重定向到日志文件

4

我有一个shell脚本,内容如下: 我希望屏幕输出可以重定向到templog, 屏幕输出不是html内容,而是像这样的

--2012-10-30 15:53:14--  http://www.youtube.com/results?search_query=pig
Resolving www.youtube.com... 173.194.34.5, 173.194.34.6, 173.194.34.7, ...
Connecting to www.youtube.com|173.194.34.5|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: “search_result”

    [ <=>                                   ] 108,503     --.-K/s   in 0.07s   

2012-10-30 15:53:15 (1.40 MB/s) - “search_result” saved [108503]

但是它不能够实现。我尝试使用 2>&1|cat > templog,但仍然不行。

您可以复制该内容并创建一个 wget.sh 文件,然后运行它。您会发现该内容无法重定向到 templog 中。

请问如何处理才能实现我的目标?谢谢。

keyword=pig
page_nr=3
wget -O search_result http://www.youtube.com/results?search_query=${keyword}&page=${page_nr} > templog

“-O”已经将wget的输出重定向到一个文件,对于你的情况来说,那就是“search_result”。由于wget没有输出到标准输出,因此没有东西可以重定向到你的templog。 - Marc B
1
那个wget的HTML内容,我想要重定向错误信息,控制信息就像我添加的那样。 - user1769686
1个回答

14

你只需要在你的URL周围加上引号。 wget 然后使用 stderr 在屏幕上打印,所以你也必须使用 stderr 而不是 stdout(使用 2> 而不是 >):

keyword=pig
page_nr=3
wget -O search_result "http://www.youtube.com/results?search_query=${keyword}&page=${page_nr}" 2> templog

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接