#!/bin/bash echo "==================================================" echo "參數檢查" echo "--------------------------------------------------" # 顯示 CHECK_URL 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出 echo "CHECK_URL=$CHECK_URL" && ([ -z "$CHECK_URL" ] || [ "$CHECK_URL" = "null" ]) && exit 1 # 顯示 HEALTH_CODE 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出 echo "HEALTH_CODE=$HEALTH_CODE" && ([ -z "$HEALTH_CODE" ] || [ "$HEALTH_CODE" = "null" ]) && exit 1 echo "==================================================" echo "取得狀態碼" echo "--------------------------------------------------" # 使用無窮迴圈持續嘗試,直到成功取得有效狀態碼 while true; do echo -n "[$(date -u +"%Y-%m-%dT%H:%M:%SZ")] $CHECK_URL ... " # 使用 curl 取得狀態碼,最長等待 60 秒,並將結果輸出到環境變數 STATUS_CODE STATUS_CODE=$(curl -s --max-time 60 -o /dev/null -w "%{http_code}" "$CHECK_URL") echo "$STATUS_CODE" && [ "$STATUS_CODE" != "000" ] && break done # 將狀態碼輸出到環境變數 echo "status_code=$STATUS_CODE" >> "$GITHUB_OUTPUT" # 檢查狀態碼是否正確 [ "$STATUS_CODE" = "$HEALTH_CODE" ] && exit 0 || exit 1 echo "=================================================="