Нет никакой технической разницы между двумя способами написания ветвей с точки зрения того, что должно произойти. Это вопрос стиля и личных предпочтений.
Некоторым разработчикам не нравится иметь безусловный выход в ветви else
оператора if, если первая ветвь завершается.
Я бы, наверное, написал код как
if [ "$ERROR_COUNT" -ne 0 ]; then
echo 'There were errors' >&2
exit 1
fi
# echo 'No errors' >&2
Обратите внимание на удаленные точки с запятой, расширение переменной в кавычках и удаленную последнюю exit
(, которая подразумевается в конце скрипта. Я изменил тест на -ne 0
с -gt 0
, потому что он понятнее (по крайней мере для меня ).
Я также изменил вывод двух диагностических сообщений, чтобы они направлялись в стандартный поток ошибок (, и улучшил их так, чтобы они были более полезными для пользователя ). Спорный вопрос, должен ли последний echo
вообще быть там, поскольку на самом деле не о чем сообщать, кроме успешного выполнения (. Я закомментировал его ).