Bashスクリプトに2つの「else」文がありますか? [閉鎖]

Bashスクリプトに2つの「else」文がありますか? [閉鎖]

sshfs接続の問題によって時々中断するリモートサーバーのインストールがあります。この問題を解決するために、ファイルがマウントされていることを確認するスクリプトを作成しました。そうでない場合は、電子メールを送信して再接続してくださいsshfs

その後の2番目の文が正しい構文を持っているかどうかはわかりませんelse。これを区別するために括弧が必要か、それとも最初のステートメントを終了するためにセミコロンが必要かどうかはわかりませんか?コードは次のとおりです。

#!/bin/bash
file="/path/to/mount/.exists"
if [ -f "$file" ]

then

echo "$file found." > /dev/null 2>&1

else
/usr/sbin/sendmail -t [email protected] </etc/alert.txt

/bin/sh /etc/fix_mount.sh
fi

次に、else最初に警告メッセージを送信して問題が発生したことを知らせ、2番目のbashスクリプトを実行して再接続しますsshfs。私はそれがそれ自体で動作することを知っていますが、私の構文のために正しく動作しないよう/etc/fix_mount.shです。elseかっこ?セミコロン?準備しましたか?

ベストアンサー1

あなたの文法は大丈夫です。

if/then/elseステートメントの構文にはifthenおよび(忘れないでください)というキーワードが含まれています。 、およびステートメントの後に許可されるコマンドは次のとおりです。elsefielifthenelseelifリストコマンド(1つ以上のコマンド)。

おすすめ記事