使用cURL记录重定向

时间:2013-04-26 19:11:05

标签: bash redirect curl

尝试开发一个脚本,将一堆URL作为输入,然后尝试加载页面,看看是否实际发生了重定向,然后记录最终的URL。 我用过这个

REDIRECT=`curl -w "%{redirect_url}" --user-agent "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0" http://m.cnbc.com`
echo "redirects to: ${REDIRECT}"

此代码工作正常。但是一旦我将URL更改为http://www.cnbc.com,脚本就会将页面源代码的内容输出到终端。我假设这种情况正在发生,因为在http://www.cnbc.com的情况下没有重定向,而在http://m.cnbc.com的情况下,因为用户代理是桌面类型。

1 个答案:

答案 0 :(得分:1)

添加-o /dev/null以删除第二种情况下的输出,并-silent以便curl不会显示进度:

# REDIRECT=`curl -w "%{redirect_url}" --user-agent "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0" -o /dev/null -silent http://m.cnbc.com`
# echo "redirects to: ${REDIRECT}"
redirects to: http://www.cnbc.com/
# REDIRECT=`curl -w "%{redirect_url}" --user-agent "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0" -o /dev/null -silent http://www.cnbc.com`
# echo "redirects to: ${REDIRECT}"                                                
redirects to: