[解決済み】Bashで "if "文に対する "and "演算子
2022-04-01 15:32:40
質問
ウェブサイトがダウンしているかどうかを確認するための簡単なBashスクリプトを作成しようとしているのですが、なぜか"と"の演算子が機能しません。
#!/usr/bin/env bash
WEBSITE=domain.com
SUBJECT="$WEBSITE DOWN!"
EMAILID="[email protected]"
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" ]]
また、どのような場合に使用するのか、アドバイスをお願いします。
- シングル角括弧とダブル角括弧
- 括弧
?
解決方法は?
このような場合、以下のようになります。
${STATUS}
は空です。 したほうがいいかもしれませんね。
if ! [ "${STATUS}" -eq 200 ] 2> /dev/null && [ "${STRING}" != "${VALUE}" ]; then
または
if [ "${STATUS}" != 200 ] && [ "${STRING}" != "${VALUE}" ]; then
スクリプトの何が問題なのかが正確に示されていないので、何とも言えません。
個人的な意見:決して
[[
. これは重要なエラーメッセージを抑制し、異なるシェルに移植することができません。
関連
-
[解決済み] bash スクリプトを実行しているドッカーエントリーポイントが "パーミッション拒否" になる
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bash prints リテラルの改行をエコーする \n
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み】Bashでファイル名と拡張子を抽出する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Bashのシンタックスエラー:予期しないファイルの終わり
-
[解決済み】予期しないトークン 'fi' 付近の構文エラー
-
[解決済み] MacOSのbashターミナルでexport PS1="\u[\033[m]@[\033[32m]\h:\[\033[33;1m]\w[\033[m]\$" は何を意味していますか?
-
[解決済み] etc/profileでVISIBLE=NOWを設定するのはなぜですか?
-
[解決済み] curl: 引数リストが長すぎる
-
[解決済み] docker alpine /bin/sh script.sh not found
-
[解決済み] bashでのDiffコマンド
-
[解決済み] IPアドレスのまとめ方
-
[解決済み] 環境変数を表示/エコーするには?
-
[解決済み] Bashでは、一重の角括弧[ ]よりも二重の角括弧[[ ]]が好ましいのでしょうか?