Что такое код выхода?

Код выхода получается при выполнении команды или сценария. Код выхода - это ответ системы, сообщающий об успешном выполнении, сбое или любом другом условии, который дает представление о том, что вызвало (неожиданный) результат выполнения команды / сценария.

  • Коды выхода не обнаруживаются, пока кто-то об этом не попросит.
  • Коды выхода полезны для отладки кода.
  • Коды выхода полезны при различных системных интеграциях

Синонимы: статус выхода, код возврата, код статуса выхода.

Определение кода выхода из Википедии

Коды выхода между скриптами Python и Shell

Часто мы имеем дело с системами, которые включают несколько разных языков программирования, где одна программа (дочерняя) вызывается изнутри другой (родительской). В зависимости от статуса (выхода) дочернего элемента выполняется остальная часть потока родительской программы. В этом случае обработка кодов выхода имеет первостепенное значение.

В этой статье мы рассмотрим способы работы с кодами выхода между сценариями python и оболочкой. Итак, приступим прямо к делу :)

An exit code in shell script is captured by executing $?

[Случай: 1] Стандартные коды выхода

Рассмотрим следующий Python (StandardExitCode.py) и сценарий оболочки (StandardExitCode.sh):

При выполнении сценария оболочки (который вызывает код Python) мы получаем стандартный код выхода, как показано ниже:

[Случай: 2] Пользовательские коды выхода

Рассмотрим следующий Python (CustomExitCode.py) и сценарий оболочки (CustomExitCode.sh):

Выполнение CustomExitCode.sh приведет к захвату пользовательского кода 9 из программы Python.

Примечание. Если вы передадите в вызов sys.exit() любое другое число, переданное значение будет напечатано, а статус выхода из системы будет 1. См. Пример ниже:

[Случай: 3a] Python Исключения и коды выхода (с правильной обработкой исключений в Python)

Рассмотрим следующий Python (Exceptions.py) и сценарий оболочки (Exceptions.sh):

Поскольку исключение обрабатывается правильно в коде Python, оно завершится с успешным кодом возврата 0 при выполнении Exceptions.sh.

[Случай: 3b] Python Исключения и коды выхода (вызывает исключение в Python)

Выполнение кода оболочки теперь приведет к печати исключения на терминале, а код выхода будет ошибочным, т.е. 1

Вывод

В этой статье мы рассмотрели несколько очень простых случаев обработки кодов выхода между Python и Shell Scrips. Суть вопроса:

  1. Стандартные коды выхода получаются при выполнении программы Python. Успешное выполнение возвращает 0, а неудачное выполнение возвращает 1
  2. Пользовательские коды выхода могут быть переданы с помощью вызова sys.exit() в python. Полезно при добавлении описаний ошибок к кодам выхода. Все аргументы вызова, кроме Integer, печатаются, и система завершает работу с кодом ошибки 1.
  3. При правильной обработке исключений в коде Python применяются стандартные правила кода выхода.
  4. Когда в python возникают исключения, передается код выхода 1, и исключение печатается на терминале.

Пожалуйста, дайте мне знать, стоит ли это читать. Делитесь своими отзывами и предложениями в комментариях. Удачного программирования !!!