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

184
задан T Zengerink 14 October 2012 в 22:11
поделиться

7 ответов

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

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

202
ответ дан T Zengerink 23 November 2019 в 05:56
поделиться

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

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

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

me@mini:~$ python -c ""; echo $?
0
me@mini:~$ python -c "import sys; sys.exit(0)"; echo $?
0
me@mini:~$ python -c "import sys; sys.exit(43)"; echo $?
43

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

93
ответ дан cic 23 November 2019 в 05:56
поделиться

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

, Например, Разрешение отклонило , код ошибки 13 :

import errno, sys

if can_access_resource():
    do_something()
else:
    sys.exit(errno.EACCES)
27
ответ дан Acumenus 23 November 2019 в 05:56
поделиться

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

14
ответ дан Sam Corder 23 November 2019 в 05:56
поделиться

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

5
ответ дан S.Lott 23 November 2019 в 05:56
поделиться

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

4
ответ дан Harper Shelby 23 November 2019 в 05:56
поделиться

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

2
ответ дан Davide 23 November 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: