22

メールを送信する他のチェーンの1つのスクリプトであるスクリプトがあります。

スクリプトの開始時に、ファイルが存在するかどうかを確認し、存在する場合にのみ続行します。それ以外の場合は、終了します。

これが私のスクリプトの始まりです:

if [ ! -f /scripts/alert ];
then
    echo "File not found!" && exit 0
else
        continue
fi

しかし、私は次のようなメッセージを受け取り続けます:

line 10: continue: only meaningful in a `for', `while', or `until' loop

ポインタはありますか?

4

3 に答える 3

41

これに変更します:

{
if [ ! -f /scripts/alert ]; then
    echo "File not found!"
    exit 0
fi
}

条件付きはループではなく、ジャンプする必要のある場所はありません。とにかく、実行は条件付きの後で単純に続行されます。

(私も不必要なものを削除しました&&。それが起こるはずではありませんが、echo失敗した場合に備えて、終了しない理由はありません。)

于 2012-02-05T01:25:47.020 に答える
2

問題は、またはループcontinueの次の反復にスキップするために通常使用される行にあります。forwhile

したがって、スクリプトのelse一部を削除するだけで、スクリプトが機能するようになります。

于 2012-02-05T01:26:17.913 に答える
1

はい。をドロップしelse continueます。それは完全に不要です。

于 2012-02-05T01:26:00.973 に答える