如何知道卷曲失败时的卷曲格式

时间:2018-03-17 23:54:54

标签: bash curl

我正在使用curl格式从脚本运行curl。问题是,即使它失败了,我在输出中也有总时间。

我真的需要知道它是否失败。 编辑:失败是指它没有下载文件(例如服务器上缺少文件)。

这是剧本中的一行:

curl -f -H 'Cache-Control: no-cache' -w "@curl-format.txt" -o /dev/null -s  "$IP_PORT/$FILE_NAME"

以下是卷曲格式:

time_namelookup:        %{time_namelookup}\n
time_connect:           %{time_connect}\n
time_appconnect:        %{time_appconnect}\n
time_pretransfer:       %{time_pretransfer}\n
time_redirect:          %{time_redirect}\n
time_starttransfer:     %{time_starttransfer}\n
                ----------\n
     time_total:  %{time_total}\n

这是请求不在服务器上的文件的输出:

time_namelookup:        0.000
time_connect:           0.198
time_appconnect:        0.000
time_pretransfer:       0.199
time_redirect:          0.000
time_starttransfer:     0.409
                ----------
     time_total:  0.409

2 个答案:

答案 0 :(得分:0)

$?包含最后一个命令的退出代码(0 =成功,> 0 =错误代码)

答案 1 :(得分:0)

正确的方法是使用-D header.out。 如果它在带循环的脚本中,可以使用-D header $ counter.out:

curl -D header$NUM_TRIES.out -H 'Cache-Control: no-cache' -w "@curl-format.txt" -o /dev/null -s  "$IP_PORT/$FILE_NAME"  &

然后计算成功:

more header* | grep 200 -c 

失败将是NUM_TRIES - 上述值