cURL:エラー情報を取得する

cURL:エラー情報を取得する

cURLを使用していくつかのWebサイトとメールサーバーを監視するための小さなbashスクリプトを作成しました。

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

関連情報