1
私は単純なbashスクリプトを作成しようとしています。 (ちょうどbashスクリプトに取り組み始めました) スクリプトは簡単です。 rsyslogサービスに問題があり、時には死ぬことがあります。 サービスを再起動するためにサービスが終了していないかどうかを確認するスクリプトを作成しようとしています。 まで今の状態は正常かどうかをチェックしたいが、エラーが出ているようだ。私にアドバイスできますか?ここで私のbashスクリプトを作成しようとしています
はスクリプトです:
#!/bin/bash
a="dead"
b="running"
while i in $(/etc/init.d/rsyslog status | grep -o 'running\|dead');
do
if
[ "$a" == "$i" ];
then
echo "service rsyslog is dead "
if
[ "$b" == "$i" ];
then
echo "service rsyslog is running"
else
echo "nothing to do";
fi;
done
-------------
私は、次の構文エラーを取得しています。
./rsyslogcheck.sh:行17:予期しないトークンdone' ./rsyslogcheck.sh: line 17:
の近くに構文エラーが」
を行って事前にありがとうございます!
これをhttps://www.shellcheck.netから実行します。最初の 'if'には' fi'がありません。 –
ステートメント/コマンドを区切るために、セミコロン( ';')*と*改行の両方を使う必要はありません。 –
また、 'while'ループと' for'ループを混同しています。 'bash'には' in'演算子はありません。 'in'は' foreach'のスペルに使われる単なるキーワードです。 – chepner