Shell-Script
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
當我添加*–show-error*時,它會直接列印出來。我可以將它重定向到一個文件或 sterr,但不知道將它們放在一起。
我知道 –write_out 有類似*%{errormsg}和%* {exitcode} 的東西,但兩者在我的測試系統 (macOS 10.15) 和我的 AWS Lightsail 伺服器上都不可用。
為什麼不只是
RESPONSE=$(...)
(echo $?
最後沒有),然後EXIT=$?
呢?您不需要一個數組 -
$RESPONSE
將包含的輸出curl
並將$EXIT
包含退出程式碼。