Проверьте, существует ли файл, и продолжайте, иначе выйдите из Bash - PullRequest
18 голосов
/ 05 февраля 2012

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

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

Вот начало моего скрипта:

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

Есть указатели?

Ответы [ 3 ]

34 голосов
/ 05 февраля 2012

Измените его следующим образом:

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

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

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

2 голосов
/ 05 февраля 2012

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

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

1 голос
/ 05 февраля 2012

Да.Бросьте else continue.Это совершенно не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...