Bash - оператор «и» для оператора «если»

Я пытаюсь создать простой сценарий 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" ]]

Не могли бы вы также посоветовать, когда использовать:

  • одинарные и двойные квадратные скобки
  • скобки
142
задан Cœur 26 July 2017 в 14:21
поделиться