웹 사이트가 다운되었는지 확인하고 어떤 이유로 "and"연산자가 작동하지 않는 간단한 Bash 스크립트를 만들려고합니다.
#!/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
이중성이 있습니다. Bourne 쉘 스타일 test
명령 (일명 [
,) 과 함께 사용 하면을 의미 and
합니다. 조건식 으로 사용되면 파일이 있는지 테스트합니다. 예, 혼란스럽고 피하는 것이 가장 좋습니다.