cURL:获取错误信息

cURL:获取错误信息

我制作了一个小 bash 脚本来使用 cURL 监视一些网站和邮件服务器。

我会检查 HTTP 状态代码和退出代码。但我还想包含来自 cURL 的实际错误消息。无法弄清楚如何将它们组合在一起。

以下代码是我目前拥有的:

RESPONSE=$(curl --location --head --silent --output /dev/null --write-out '%{response_code}' nohosthere.com ; echo " $?")
R=( $RESPONSE )
CODE="${R[0]}"
EXIT="${R[1]}"


if [ $CODE -eq 200 ]; then
    echo 'Ok'
else
    echo "Response: ${RESPONSE}"
    echo "Code: ${CODE}"
    echo "Exit: ${EXIT}"
    #echo "MESSAGE I WANT HERE curl: (6) Could not resolve host: nohosthere.com"
fi

当我添加--显示错误是直接打印出来的。我可以将其重定向到文件或存储空间,但不知道将所有内容放在一起。

我知道 --write_out 有类似的东西%{错误消息}%{退出代码}但两者在我的测试系统 (macOS 10.15) 和我的 AWS Lightsail 服务器上均不可用。

答案1

为什么不直接RESPONSE=$(...)(最后没有echo $?),然后EXIT=$?

您不需要为此使用数组 -$RESPONSE将包含 的输出curl并将$EXIT包含退出代码。

相关内容