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)
Ответ на: комментарий от Yorween

Благодарю за наводку, не знал, что его можно так использовать)

Попробую сейчас.

debihard
() автор топика
Ответ на: комментарий от debihard

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

mord0d ★★★★★
()

Python на целевой системе есть? Тогда не страдай башем

anonymous
()
Ответ на: комментарий от teod0r

Кстати да. Именно так сработало, забыл отписаться.

Спасибо за уточнение, а так же всем остальным кто отписал с советами)

debihard
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.