TGViewer
Библиотека девопса | DevOps, SRE, Sysadmin Библиотека девопса | DevOps, SRE, Sysadmin @devopsslib · 10.4K subscribers
Post #4727 1.09K
🧑‍💻 Скрипт молчит и это проблема

Каждый раз, когда команда завершается в Linux, она возвращает число от 0 до 255. Это единственный способ скрипта сказать миру: «всё окей» или «что-то пошло не так».

0 это успех. Всё остальное — ошибка.

Что происходит без системы

Скрипт упал с кодом 1. Что это значит? Непонятно. Другой скрипт упал с 1. Тоже непонятно и это уже другой скрипт. CI/CD pipeline ловит ошибку и не знает, что делать дальше. Дебаггинг превращается в угадайку.

Как сделать нормально: диапазоны

Разбейте коды на логические группы:
0       -> успех
1-9 -> общие ошибки
10-19 -> плохие аргументы / входные данные
20-29 -> ошибки файловой системы
30-39 -> сеть
40-49 -> права доступа
50-99 -> внутренние ошибки


Коды 126-255 зарезервированы системой. Не трогайте.

Дайте кодам имена

Не пишите exit 20. Напишите так:
EXIT_FILE_NOT_FOUND=20
EXIT_PERMISSION_DENIED=40
EXIT_NETWORK_FAIL=30


Скрипт становится самодокументируемым. Через полгода вы скажете себе спасибо.

Вынесите коды в отдельный файл

Если скриптов несколько, то создайте exit_codes.sh и подключайте его через source exit_codes.sh.

Всегда проверяйте внешние команды:
cp file1 file2
if [ $? -ne 0 ]; then
echo "Копирование не удалось" >&2
exit $EXIT_FILE_WRITE_ERROR
fi


Никогда не игнорируйте статус выхода внешних команд. Молчаливые ошибки это худшие ошибки.

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

Маленькая деталь, которая отличает скрипт на коленке от production-ready инструмента.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#арсенал_инженера
  • 👍 5
More from @devopsslib
  1. Sep 18, 2026От исходного кода до процессора: разберись, как работает программа 💻 Стартует практически…
  2. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  3. Sep 15, 2026👩‍💻 Bash-скрипт для мониторинга сервисов Полноценный мониторинг вроде Zabbix или Prometh…
  4. Sep 13, 2026🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy выра…
  5. Sep 13, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
  6. Sep 10, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →