Программа завершила работу с ненулевым кодом возврата что это значит

Глава 6. Завершение и код завершения

Команда exit может использоваться для завершения работы сценария, точно так же как и в программах на языке C. Кроме того, она может возвращать некоторое значение, которое может быть проанализировано вызывающим процессом.

Каждая команда возвращает код завершения (иногда код завершения называют возвращаемым значением ). В случае успеха команда должна возвращать 0 , а в случае ошибки — ненулевое значение, которое, как правило, интерпретируется как код ошибки. Практически все команды и утилиты Unix возвращают 0 в случае успешного завершения, но имеются и исключения из правил.

Аналогичным образом ведут себя функции, расположенные внутри сценария, и сам сценарий, возвращая код завершения. Код, возвращаемый функцией или сценарием, определяется кодом возврата последней команды. Команде exit можно явно указать код возврата, в виде: exit nnn , где nnn — это код возврата (число в диапазоне 0 — 255 ).

Когда работа сценария завершается командой exit без параметров, то код возврата сценария определяется кодом завершения последней исполненной команды (не считая саму команду exit).

Что такое null pointer. null c++ что это. nullptr c++ что это. nullptr c++11. Урок #54


#!/bin/bash COMMAND_1 . # Сценарий вернет код завершения последней команды. COMMAND_LAST exit

Эквивалентный вариант — exit $? или можно вообще опустить команду exit.

#!/bin/bash COMMAND_1 . # Сценарий вернет код завершения последней команды. COMMAND_LAST exit $?
#!/bin/bash COMMAND1 . # Сценарий вернет код завершения последней команды. COMMAND_LAST

Код возврата последней команды хранится в специальной переменной $?. После исполнения кода функции, переменная $?

хранит код завершения последней команды, исполненной в функции. Таким способом в Bash передается «значение, возвращаемое» функцией. После завершения работы сценария, код возврата можно получить, обратившись из командной строки к переменной $?, т.е. это будет код возврата последней команды, исполненной в сценарии.

Пример 6-1. завершение / код завершения

#!/bin/bash echo hello echo $? # код возврата = 0, поскольку команда выполнилась успешно. lskdf # Несуществующая команда. echo $? # Ненулевой код возврата, поскольку команду выполнить не удалось. echo exit 113 # Явное указание кода возврата 113. # Проверить можно, если набрать в командной строке «echo $?» # после выполнения этого примера. # В соответствии с соглашениями, ‘exit 0’ указывает на успешное завершение, #+ в то время как ненулевое значение означает ошибку.

Переменная $? особенно полезна, когда необходимо проверить результат исполнения команды (см. Пример 12-30 и Пример 12-16).

Символ !, может выступать как логическое «НЕ» для инверсии кода возврата.

Пример 6-2. Использование символа ! для логической инверсии кода возврата

true # встроенная команда «true». echo «код возврата команды «true» = $?» # 0 ! true echo «код возврата команды «! true» = $?» # 1 # Обратите внимание: символ «!» от команды необходимо отделять пробелом. # !true вызовет сообщение об ошибке «command not found» # Спасибо S.C.

В отдельных случаях коды возврата должны иметь предопределенные значения и не должны задаваться пользователем.

15 урок — Обработчик ожидания 1С и другое

Назад В начало документа Вперед
Кавычки К началу раздела Проверка условий

Место для размещения данного материала предоставлено порталом web технологий net4me.net

Читайте также:
Программа прошоу для чего

Источник: net4me.net

Разница между exit(0) и exit (1) в Python

в чем разница между exit(0) и exit(1) в Python?

Я попытался оглядеться, но не нашел конкретного вопроса в этих строках. Если на него уже ответили, ссылки будет достаточно.

автор: guaka

5 ответов

0 и 1-коды выхода.

exit(0) означает чистый выход без каких-либо ошибок / проблем

exit(1) означает, что была какая-то проблема / ошибка / проблема, и именно поэтому программа выходит.

это не специфично для Python и довольно распространено. Ненулевой код выхода рассматривается как ненормальный выход, и иногда код ошибки указывает, в чем заключалась проблема. Нулевой код ошибки означает успешный выход.

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

автор: manojlds

определяет код программы для завершения работы (как правило, 0 для успеха и 1 при ошибке).

Он не уникален для Python, и точный эффект зависит от вашей операционной системы и того, как вызывается программа (хотя 99% времени, если вы просто запускаете скрипты Python, это не имеет значения).

автор: David Robinson

стандартное соглашение для всех программ C, включая Python, для exit(0) для обозначения успеха, и exit(1) или любое другое ненулевое значение (в диапазоне 1..255) для указания отказа. Любое значение вне диапазона 0..255 обрабатывается по модулю 256 (состояние выхода сохраняется в 8-разрядном значении). Иногда это будет рассматриваться как подписанное (так что вы можете увидеть -128, -127 и т. д.), Но чаще это рассматривается как неподписанное.

этот статус доступен для кода, который вызвал Python. Это соглашение применяется на разных платформах, хотя значение ненулевого статуса выхода может варьироваться на разных платформах.

автор: Jonathan Leffler

количество передаваемых exit() функция-это просто код возврата вашей программы, который предоставляется операционной системе. С точки зрения вашей программы, нет никакой разницы: выполнение завершится в обоих случаях, и значение, предоставленное функции, будет передано ОС. Но некоторые инструменты и скрипты учитывают код выхода программы. Большинство инструментов возвращают 0, когда они успешны и ненулевые, чтобы указать на ошибку.

Итак, если ваша программа будет запущена из скрипта, automated tool или из другого программного обеспечения, которое учитывает код возврата (например, IDE), вы должны быть осторожны в том, что вы возвращаете.

когда вы сомневаетесь, просто верните 0, чтобы указать, что все в порядке.

автор: José Ernesto Lara Rodríguez

exit(0) : Это приводит к выходу программы с успешным завершением.

exit(1) : это заставляет программу выходить с системным значением.

на многих системах, exit(1) сигнализирует о каком-то сбое, однако там это не гарантия.

насколько я помню, стандарт C распознает только три стандартных выхода значения:

  • EXIT_SUCCESS — успешного завершения
  • EXIT_FAILURE — неудачная прекращение
  • 0 — то же самое, что EXIT_SUCCESS

Источник: askdev.ru

Коды выхода в Python

Я получил сообщение, что script xyz.py returned exit code 0 . Что это значит?

Что означают коды выхода в Python? Сколько их там? Какие из них важны?

12 ответов:

то, что вы ищете в скрипте вызовы sys.exit() . Аргумент этого метода возвращается в среду в качестве кода выхода.

вполне вероятно, что скрипт никогда не вызывает метод exit, и что 0-это код выхода по умолчанию.

2015-05-20 10:31:47 Dave Costa

С документация sys.exit :

необязательный аргумент arg может быть целое состояние выхода (по умолчанию ноль), или другой тип объекта. Если это целое число, ноль считается » успешным окончанием» и любое ненулевое значение считается «анормалное прекращение» раковинами и подобный. Большинство систем требуют этого быть в диапазоне 0-127, и производить неопределенные результаты в противном случае. Некоторые системы Конвенции для присвоение конкретных значений конкретные коды выхода, но это как правило, недоразвиты; в Unix программы обычно используют 2 для команды ошибки синтаксиса строки и 1 для всех остальных виды ошибок.

один пример, где коды выхода используются в сценариях оболочки. В bash, вы можете проверить специальную переменную $? для последнего состояния выхода:

Читайте также:
Swmsm что это за программа и нужна ли она

[email protected]:~$ python -c «»; echo $? 0 [email protected]:~$ python -c «import sys; sys.exit(0)»; echo $? 0 [email protected]:~$ python -c «import sys; sys.exit(43)»; echo $? 43

лично я стараюсь использовать коды выхода, которые я нахожу в /usr/include/asm-generic/errno.h (на Linux), но я не знаю, если это правильно.

2015-09-10 14:15:55 Eigir

есть errno модуль, который определяет стандартные коды выхода:

например, доступ запрещен код ошибки 13:

import errno, sys if can_access_resource(): do_something() else: sys.exit(errno.EACCES)
2011-11-05 00:07:55 Oli

для записи можно использовать стандартные коды выхода POSIX defined здесь.

пример:

import sys, os try: config() except: sys.exit(os.EX_CONFIG) try: do_stuff() except: sys.exit(os.EX_SOFTWARE) sys.exit(os.EX_OK) # code 0, all ok
2015-06-11 11:53:44 laffuste

коды выхода 0 обычно означают: «здесь все в порядке.»Однако, если программист сценария не следовал конвенции, вам, возможно, придется проконсультироваться с источником, чтобы увидеть, что это значит. Обычно ненулевое значение возвращается в виде кода ошибки.

2008-11-12 22:46:28 Sam Corder

команды операционной системы кодов выхода. Ищите коды выхода linux чтобы увидеть некоторые материалы по этому вопросу. Оболочка использует коды выхода, чтобы решить, если программа работала, были проблемы или не удалось. Есть некоторые усилия по созданию стандартных (или, по крайней мере, часто используемых) кодов выхода. Смотрите это Расширенный Скрипт проводки.

2008-11-13 01:12:15 S.Lott

Если вы хотите портативно использовать стандартные коды выхода POSIX см. exitstatus пакет на PyPI.

установить пакет:

pip install exitstatus

использовать в коде:

import sys from exitstatus import ExitStatus sys.exit(ExitStatus.success)
2016-06-11 00:17:29 phoenix

коды выхода имеют значение только по назначению автора сценария. Традиция Unix заключается в том, что код выхода 0 означает «успех», все остальное-неудача. Единственный способ убедиться, что коды выхода для данного скрипта означают, — это изучить сам скрипт.

2008-11-12 22:46:50 Harper Shelby

коды выхода во многих языках программирования до программистов. Поэтому вам нужно посмотреть исходный код вашей программы (или руководство). Ноль обычно означает»все прошло хорошо».

2008-11-12 23:05:55 Davide

ответ «зависит от того, что означает нулевой код выхода»

однако в большинстве случаев это означает «все в порядке»

мне нравится POSIX:

Итак, на оболочке я бы набрал:

python script.py echo ‘OK’ || echo ‘Not OK’

Если мой скрипт python вызывает sys.exit(0) оболочка возвращает ‘OK’

Если мой скрипт python вызывает sys.exit(1) (или любое ненулевое целое число), оболочка возвращает ‘Not OK’

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

2017-01-24 20:22:58 FlipMcF

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

2017-03-10 15:12:44 vidstige

Читайте также:
Aurora borealis что это за программа

Я рекомендую чистое завершение работы со встроенным выходом (0), а не с помощью sys.exit ()

Я не уверен, что это хороший совет.

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

выход(код=нет)

объекты, которые при печати печатают сообщение типа «используйте quit () или Ctrl-D (т. е. EOF) для выхода», а при вызове вызывают SystemExit с указанным кодом выхода.

Если мы сравним его с sys.exit () документация, он использует тот же механизм, который поднимает SystemExit исключения.

Источник: codengineering.net

Программа завершила работу с ненулевым кодом возврата что это значит

. эта часть Bourne shell покрыта мраком, тем не менее все пользуются ею.

Команда exit может использоваться для завершения работы сценария, точно так же как и в программах на языке C. Кроме того, она может возвращать некоторое значение, которое может быть проанализировано вызывающим процессом.

Каждая команда возвращает код завершения (иногда код завершения называют возвращаемым значением ). В случае успеха команда должна возвращать 0 , а в случае ошибки — ненулевое значение, которое, как правило, интерпретируется как код ошибки. Практически все команды и утилиты UNIX возвращают 0 в случае успешного завершения, но имеются и исключения из правил.

Аналогичным образом ведут себя функции, расположенные внутри сценария, и сам сценарий, возвращая код завершения. Код, возвращаемый функцией или сценарием, определяется кодом возврата последней команды. Команде exit можно явно указать код возврата, в виде: exit nnn , где nnn — это код возврата (число в диапазоне 0 — 255 ).

Когда работа сценария завершается командой exit без параметров, то код возврата сценария определяется кодом возврата последней исполненной командой.

Код возврата последней команды хранится в специальной переменной $?. После исполнения кода функции, переменная $? хранит код завершения последней команды, исполненной в функции. Таким способом в Bash передается «значение, возвращаемое» функцией. После завершения работы сценария, код возврата можно получить, обратившись из командной строки к переменной $?, т.е. это будет код возврата последней команды, исполненной в сценарии.

Пример 6-1. завершение / код завершения

#!/bin/bash echo hello echo $? # код возврата = 0, поскольку команда выполнилась успешно. lskdf # Несуществующая команда. echo $? # Ненулевой код возврата, поскольку команду выполнить не удалось. echo exit 113 # Явное указание кода возврата 113. # Проверить можно, если набрать в командной строке «echo $?» # после выполнения этого примера. # В соответствии с соглашениями, ‘exit 0’ указывает на успешное завершение, #+ в то время как ненулевое значение означает ошибку.

Переменная $? особенно полезна, когда необходимо проверить результат исполнения команды (см. Пример 12-27 и Пример 12-13).

Символ !, может выступать как логическое «НЕ» для инверсии кода возврата.

Пример 6-2. Использование символа ! для логической инверсии кода возврата

true # встроенная команда «true». echo «код возврата команды «true» = $?» # 0 ! true echo «код возврата команды «! true» = $?» # 1 # Обратите внимание: символ «!» от команды необходимо отделять пробелом. # !true вызовет сообщение об ошибке «command not found» # Спасибо S.C.

Назад К началу Вперед
Кавычки Наверх Проверка условий

Источник: www.opennet.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru