BASH, проверьте, существует ли файл и продолжается ли выход

У меня есть script, который является одним script в цепочке других, которая отправляет электронное письмо.

В начале script я хочу проверить, существует ли файл и продолжать его, только если он существует, иначе просто закройте.

Вот начало моего script:

{
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

Любые указатели?

Ответы

Ответ 1

Измените его так:

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

Условие не является циклом, и нет места, куда вам нужно перейти. Выполнение просто продолжается после условного в любом случае.

(Я также удалил ненужный &&. Не то, чтобы это произошло, но на случай, если echo не работает, нет причин не выходить.)

Ответ 2

Да. Снимите else continue. Он полностью не нужен.

Ответ 3

Ваша проблема связана с линией continue, которая обычно используется для перехода к следующей итерации цикла for или while.

Поэтому просто удаление части else вашего script должно позволить ей работать.