Shell-Script

cURL:獲取錯誤資訊

  • December 16, 2021

我製作了一個小 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

當我添加*–show-error*時,它會直接列印出來。我可以將它重定向到一個文件或 sterr,但不知道將它們放在一起。

我知道 –write_out 有類似*%{errormsg}%* {exitcode} 的東西,但兩者在我的測試系統 (macOS 10.15) 和我的 AWS Lightsail 伺服器上都不可用。

為什麼不只是RESPONSE=$(...)echo $?最後沒有),然後EXIT=$?呢?

您不需要一個數組 -$RESPONSE將包含的輸出curl並將$EXIT包含退出程式碼。

引用自:https://unix.stackexchange.com/questions/680939