如何捕获CURL shell脚本中的超时/错误?

Ron*_*Ron 6 bash shell curl http

我想向URL发出cURL GET请求,并根据返回的HTTP代码决定是否对返回的HTTP数据执行某些操作.

例如,如果通过cURL的某个url请求的HTTP代码有效(没有超时或错误),那么请保留我系统中某处的请求返回的数据.

我怎样才能实际"捕获"返回的HTTP代码(或超时)并根据它做出决定?

Sit*_*hsu 28

执行以下操作script.sh http://www.google.com/.
-D- 将头转储到文件
-o- 写入对文件的响应
-s- 保持沉默
-w- 显示指定变量的值

#!/bin/bash

RESPONSE=response.txt
HEADERS=headers.txt

status=$(curl -s -w %{http_code} $1 -o $RESPONSE)

# or
#curl -s -D $HEADERS $1 -o $RESPONSE
#status=$(cat $HEADERS | head -n 1 | awk '{print $2}')

echo $status
Run Code Online (Sandbox Code Playgroud)

使用$status$RESPONSE进一步处理.

  • +1包括CLI选项的说明.它们位于man文件中,但是只需要在海报上进行少量工作就可以删除额外的抽象级别.我希望更多的人会这样做. (7认同)