Códigos de salida en Python

Resuelto sundeep asked hace 16 años • 17 respuestas

Recibí un mensaje que decía script xyz.py returned exit code 0. ¿Qué quiere decir esto?

¿Qué significan los códigos de salida en Python? ¿Cuántos hay? ¿Cuáles son importantes?

sundeep avatar Nov 13 '08 03:11 sundeep
Aceptado

Estás buscando llamadas a sys.exit()( exit()calls sys.exit()) en el script. El argumento de ese método se devuelve al entorno como código de salida.

Es bastante probable que el script nunca llame al método de salida y que 0 sea el código de salida predeterminado.

Dave Costa avatar Nov 12 '2008 20:11 Dave Costa

De la documentación para sys.exit:

El argumento opcional arg puede ser un número entero que proporcione el estado de salida (el valor predeterminado es cero) u otro tipo de objeto. Si es un número entero, cero se considera "terminación exitosa" y cualquier valor distinto de cero se considera "terminación anormal" por parte de shells y similares. La mayoría de los sistemas requieren que esté en el rango 0-127 y, de lo contrario, producen resultados indefinidos. Algunos sistemas tienen una convención para asignar significados específicos a códigos de salida específicos, pero generalmente están poco desarrolladas; Los programas Unix generalmente usan 2 para errores de sintaxis de línea de comando y 1 para todos los demás tipos de errores.

Un ejemplo donde se utilizan códigos de salida es en scripts de shell. En Bash puedes verificar la variable especial $?para el último estado de salida:

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

Personalmente trato de usar los códigos de salida que encuentro /usr/include/asm-generic/errno.h(en un sistema Linux), pero no sé si es lo correcto.

Eigir avatar Nov 12 '2008 21:11 Eigir