LINUX.ORG.RU

Выбор сценария в зависимости от полученной ошибки

 


1

2

Здравствуйте. Подскажите, пожалуйста, как правильно сделать ветвление в цикле в зависимости от полученной ошибки?

Есть команда в скрипте, которая в зависимости от различных условий либо выполняется успешно, либо возвращает различные ошибки.

Мне необходимо мониторить конкретные ошибки, а остальные считать успешным выполнением и игнорировать.

Для первой ошибки делаю так, все работает.

if command1 2>&1 | grep -q "Try  again later."
then
mycommand2
echo "command2 ok..."
else
echo "command1 ok..."
fi

А вот как проверить вторую ошибку «Already exist» и выполнить command3 ?

Пробовал после else добавлять еще один цикл If else (elif), но так не сработало.

после else

У тебя else выполняется в любом случае, если не "Try again later.", и всё, что после него, не имеет смысла.

Вначале обрабатывай все нужные случаи, а уже затем else на случай чего-то другого.

mord0d ★★★ ()
Ответ на: комментарий от mord0d

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

Сначала я думал, что последовательно отработаю сначала первый, а потом второй, а остальное выполнится на случай чего-то другого. Но у меня так не сработало. Поэтому и спросил. Пытался гуглить, но видимо неправильно формулирую вопрос.

debihard ()

Для проверки на другую подстроку в скрипте ошибка в логике, т.к. команда выполнилась и вывод её в первой строчке отфильтрован.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)