यदि वेबसाइट डाउन है और किसी कारण से "और" ऑपरेटर काम नहीं करता है, तो यह जांचने के लिए मैं एक सरल बैश स्क्रिप्ट बनाने की कोशिश कर रहा हूं:
#!/usr/bin/env bash
WEBSITE=domain.com
SUBJECT="$WEBSITE DOWN!"
EMAILID="an@email.com"
STATUS=$(curl -sI $WEBSITE | awk '/HTTP\/1.1/ { print $2 }')
STRING=$(curl -s $WEBSITE | grep -o "string_to_search")
VALUE="string_to_search"
if [ $STATUS -ne 200 ] && [[ "$STRING" != "$VALUE" ]]; then
echo "Website: $WEBSITE is down, status code: '$STATUS' - $(date)" | mail -s "$SUBJECT" $EMAILID
fi
"-A" ऑपरेटर भी काम नहीं करता है:
if [ $STATUS -ne 200 ] -a [[ "$STRING" != "$VALUE" ]]
क्या आप भी सलाह दे सकते हैं कि कब उपयोग करें:
- एकल और डबल वर्ग कोष्ठक
- कोष्टक
?
-aदोहराव है। जब बॉर्न शैल शैली testकमांड, उर्फ के साथ उपयोग किया जाता है [, तो इसका मतलब है and। जब एक सशर्त अभिव्यक्ति के रूप में उपयोग किया जाता है तो यह देखने के लिए परीक्षण होता है कि क्या कोई फ़ाइल मौजूद है। हाँ, यह भ्रामक है, सबसे अच्छा बचा है।