为什么我的bash脚本只在访问的第一个页面上返回有效的curl响应?

为什么我的bash脚本只在访问的第一个页面上返回有效的curl响应?,bash,shell,curl,scripting,Bash,Shell,Curl,Scripting,我有一个shell脚本,它正在从www.exploit-db.com卷曲一些页面,并将它们保存到一个文件中。脚本从另一个包含url页面的文件获取输入。它可以在第一个网页上正常工作,但在这之后,它每隔一页返回404。我不明白为什么,因为这些页面是有效页面 以下是脚本的主要部分: #!/bin/bash fileNumber=1 fileName="diff_test.txt" while IFS="" read -r p || [ -n "$p" ] do url="

我有一个shell脚本,它正在从www.exploit-db.com卷曲一些页面,并将它们保存到一个文件中。脚本从另一个包含url页面的文件获取输入。它可以在第一个网页上正常工作,但在这之后,它每隔一页返回404。我不明白为什么,因为这些页面是有效页面

以下是脚本的主要部分:

#!/bin/bash

fileNumber=1
fileName="diff_test.txt"


while IFS="" read -r p || [ -n "$p" ]
    do
        url="https://www.exploit-db.com/exploits/"
        both="$url$p"
        printf "curling $both"
        curl "$both" -H "Cookie: _ga=GA1.3.1298717816.1561651038""$both" -H "XSRF-TOKEN=eyJpdiI6IlJwZ0hkOFZhUFRKWFZCc2VlcENrUkE9PSIsInZhbHVlIjoiUVI0S2lPRlNDTFhleWZuXC92UlVGQ1RDSlpkR2x4ak9mWFczWFFGMVMrWnNhOHpNMHhNdUp3cG1vN3J4N1wvTUF5IiwibWFjIjoiYmNhOGI3NTZhZjQ0ZWNkNTRlYmVkZTA1NDdkYmM1NzgyOTg2ZTY1MjllMjVjYzJmNTQxZjVlMDBlNDA1YjMzNCJ9" -H "exploit_database_session=eyJpdiI6IkNBb3NcL1JYXC9POERtbVpaM3Q0QWk3QT09IiwidmFsdWUiOiJcL2N3dkFzUnRaTjlYRllnSnFXWmZBcUcyUExcL2o1UUtMZEVFQ1VcL2E1MCtIR0ZNWDhKNVMrOHBBRFQ3c1pSZjJCIiwibWFjIjoiYjY0NzRhZTAzNzJlZWJlMzM3NmQ3MGU0OTlhNzc4YzAzZjRkNWIxNmI3NzE5M2QxMzI4MmI2MTI2NmRjMjQwOSJ9" >  exploits_test_folder/"$fileNumber"
        ((fileNumber++))
        #printf '%s\n' "$both" 
        sleep 10
done < $fileName
下面是bash-x输出

+ (( fileNumber++ ))
+ sleep 10
+ IFS=
+ read -r p
+ url=https://www.exploit-db.com/exploits/
+ both='https://www.exploit-db.com/exploits/3576 '
+ printf 'curling https://www.exploit-db.com/exploits/3576 '
curling https://www.exploit-db.com/exploits/3576 + curl 'https://www.exploit-db.com/exploits/3576 ' -H 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:70.0) Gecko/20100101 Firefox/70.0' -H 'Cookie: _ga=GA1.3.1298717816.1561651038https://www.exploit-db.com/exploits/3576 ' -H XSRF-TOKEN=eyJpdiI6IlJwZ0hkOFZhUFRKWFZCc2VlcENrUkE9PSIsInZhbHVlIjoiUVI0S2lPRlNDTFhleWZuXC92UlVGQ1RDSlpkR2x4ak9mWFczWFFGMVMrWnNhOHpNMHhNdUp3cG1vN3J4N1wvTUF5IiwibWFjIjoiYmNhOGI3NTZhZjQ0ZWNkNTRlYmVkZTA1NDdkYmM1NzgyOTg2ZTY1MjllMjVjYzJmNTQxZjVlMDBlNDA1YjMzNCJ9 -H exploit_database_session=eyJpdiI6IkNBb3NcL1JYXC9POERtbVpaM3Q0QWk3QT09IiwidmFsdWUiOiJcL2N3dkFzUnRaTjlYRllnSnFXWmZBcUcyUExcL2o1UUtMZEVFQ1VcL2E1MCtIR0ZNWDhKNVMrOHBBRFQ3c1pSZjJCIiwibWFjIjoiYjY0NzRhZTAzNzJlZWJlMzM3NmQ3MGU0OTlhNzc4YzAzZjRkNWIxNmI3NzE5M2QxMzI4MmI2MTI2NmRjMjQwOSJ9
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  118k    0  118k    0     0   475k      0 --:--:-- --:--:-- --:--:--  475k
+ (( fileNumber++ ))
+ sleep 10
+ IFS=
+ read -r p

diff_test.txt
保存为一个适当的POSIX文本文件(每行以
\n
结尾),并删除
|[-n“$p”]
hack.@chepner这对curl命令有何影响?如果您有DOS行结尾,我甚至不确定第一行的
curl
是如何工作的,因为您的所有URL都将以回车结束。(DOS文本文件在两个方面不同于Windows文本文件:(1)它们使用CRLF序列,而不仅仅是换行符的LF序列;(2)它们在行之间使用这些序列,而不是在行之后;要在UNIX上成为有效的文本文件,每一行(包括最后一行)后面都应该有换行符;区别(1)如果CR进入您的URL,则会混淆您正在与之交谈的Web服务器,不同之处(2)是迫使您使用
|[-n“$p”]
以不跳过最后一行)。URL末尾有一个额外的空格(或显示为空格的字符),它必须来自文件,很可能解释了404
+ (( fileNumber++ ))
+ sleep 10
+ IFS=
+ read -r p
+ url=https://www.exploit-db.com/exploits/
+ both='https://www.exploit-db.com/exploits/3576 '
+ printf 'curling https://www.exploit-db.com/exploits/3576 '
curling https://www.exploit-db.com/exploits/3576 + curl 'https://www.exploit-db.com/exploits/3576 ' -H 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:70.0) Gecko/20100101 Firefox/70.0' -H 'Cookie: _ga=GA1.3.1298717816.1561651038https://www.exploit-db.com/exploits/3576 ' -H XSRF-TOKEN=eyJpdiI6IlJwZ0hkOFZhUFRKWFZCc2VlcENrUkE9PSIsInZhbHVlIjoiUVI0S2lPRlNDTFhleWZuXC92UlVGQ1RDSlpkR2x4ak9mWFczWFFGMVMrWnNhOHpNMHhNdUp3cG1vN3J4N1wvTUF5IiwibWFjIjoiYmNhOGI3NTZhZjQ0ZWNkNTRlYmVkZTA1NDdkYmM1NzgyOTg2ZTY1MjllMjVjYzJmNTQxZjVlMDBlNDA1YjMzNCJ9 -H exploit_database_session=eyJpdiI6IkNBb3NcL1JYXC9POERtbVpaM3Q0QWk3QT09IiwidmFsdWUiOiJcL2N3dkFzUnRaTjlYRllnSnFXWmZBcUcyUExcL2o1UUtMZEVFQ1VcL2E1MCtIR0ZNWDhKNVMrOHBBRFQ3c1pSZjJCIiwibWFjIjoiYjY0NzRhZTAzNzJlZWJlMzM3NmQ3MGU0OTlhNzc4YzAzZjRkNWIxNmI3NzE5M2QxMzI4MmI2MTI2NmRjMjQwOSJ9
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  118k    0  118k    0     0   475k      0 --:--:-- --:--:-- --:--:--  475k
+ (( fileNumber++ ))
+ sleep 10
+ IFS=
+ read -r p