我正在使用cURL在bash脚本中检查链接的正常运行时间,如下所示:
curl -Lo /dev/null --silent --head --write-out '%{http_code}' $link
例如link="http://deadlink/"
。
它返回000 cos,这是一个无效的链接,但是很好,但是每当我从cURL收到000响应时(因为可能有很多原因),我想应用一些逻辑来找出那里发生的事情。例如,是因为连接被拒绝,超时,ssl故障等吗?
我认为最好的方法是通过某种方式将错误代码直接与cURL隔离,并使用IF语句对其进行测试。那就好了,所以我要从cURL本身 提取错误代码的最接近的方法是:
failState=$(curl -Ss $link; echo "error code is $?" )
echo $failState
很好地返回:
curl: (6) Could not resolve host: brokenlink
error code is 6
如何将“ 6”放入变量?
答案 0 :(得分:1)
您可以在将curl的输出分配给$?
之后立即将failState
分配给另一个变量。
failState=$(curl -Ss "$link") exitCode=$?