単純なBashスクリプトを作成して、Webサイトがダウンしているかどうか、および何らかの理由で「and」演算子が機能していないかどうかを確認しようとしています。
#!/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
ます。条件式として使用すると、ファイルが存在するかどうかをテストします。はい、わかりにくいので、避けた方がいいでしょう。