cURL并不总是遵循重定向

时间:2014-07-11 22:17:15

标签: bash shell redirect curl cygwin

我是新来的,有一个我已经研究过的问题,现在已经尝试解决了一段时间。我正在开发一个web crawler-esque bash脚本;很简单。 我希望访问一个网址,其中某个ID附加到网址。我希望通过这些给定的传递参数作为边界递增。我已经取得了一些成功,但我注意到它并不总是可靠的。我正在使用cygwin,因为我在Windows上,我想知道这是不是问题。此外,因为这是一个漫长的过程,我复制了文件,并且每个都增加了2.我已经研究了人们遇到的类似问题,并且已经提出需要管理cookie。我想知道我会这样做。

脚本:

for i in $(eval echo {$1..$2..2})
do

url=`curl -b a,, -w "%{url_effective}\n" -L -s -S -o /dev/null http://website.com/page/Redirected_String/$i`
echo $i - $url

done

我甚至独立于BASH循环运行cURL命令,但有时仍无法跟随页面的重定向。

curl -b a,, -w "%{url_effective}\n" -L -s -S -o /dev/null http://website.com/page/Redirected_String/100

更奇怪的是,我的iPhone上有一个脚本副本,当我通过移动终端运行时,它似乎更可靠。我正在运行cygwin,我注意到,当发生这种情况时,每个假定的重定向网页的输出字符串都会更快地生成。

这可能是硬件问题吗?我对此非常困惑,并且全神贯过地寻找帮助无济于事。 任何帮助将不胜感激。 谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在BASH算术括号for i in $(eval echo {$1..$2..2})中执行此操作,而不是((...))

for ((i=$1; i<=$2; i+=2)); do echo "$i"; done