Что такое код выхода?
Код выхода получается при выполнении команды или сценария. Код выхода - это ответ системы, сообщающий об успешном выполнении, сбое или любом другом условии, который дает представление о том, что вызвало (неожиданный) результат выполнения команды / сценария.
- Коды выхода не обнаруживаются, пока кто-то об этом не попросит.
- Коды выхода полезны для отладки кода.
- Коды выхода полезны при различных системных интеграциях
Синонимы: статус выхода, код возврата, код статуса выхода.
Определение кода выхода из Википедии
Коды выхода между скриптами 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. Суть вопроса:
- Стандартные коды выхода получаются при выполнении программы Python. Успешное выполнение возвращает
0
, а неудачное выполнение возвращает1
- Пользовательские коды выхода могут быть переданы с помощью вызова
sys.exit()
в python. Полезно при добавлении описаний ошибок к кодам выхода. Все аргументы вызова, кроме Integer, печатаются, и система завершает работу с кодом ошибки1
. - При правильной обработке исключений в коде Python применяются стандартные правила кода выхода.
- Когда в python возникают исключения, передается код выхода
1
, и исключение печатается на терминале.
Пожалуйста, дайте мне знать, стоит ли это читать. Делитесь своими отзывами и предложениями в комментариях. Удачного программирования !!!