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 должно позволить ей работать.