Aquí hay dos conceptos relacionados: C exit status y bash return code. Ambos cubren el rango 0-255, pero bash usa números superiores a 126 para sus propios fines, por lo que sería confuso devolverlos de su programa.
Para estar seguro limite los códigos de estado de salida a 0-127, ya que es más portátil, al menos eso está implícito en http://docs.python.org/library/sys.html#sys.exit.
El estado de salida C se pone en el bash $? variable después de la ejecución, pero bash usa 127 para indicar 'comando no encontrado', por lo que es posible que desee evitarlo. Bash reference page.
Bash también usa 128-255 para las señales: indican que el proceso se canceló con una señal: exit code = 128 + signal number
. Por lo tanto, es posible que consiga usar números cercanos a 255 ya que es poco probable que los números de señal lleguen a ese nivel.
Más allá de las líneas de guía comunes, hay muchos intentos de definir lo que los diferentes números deberían significar: http://tldp.org/LDP/abs/html/exitcodes.html.
Por lo tanto, si desea devolver un número entero arbitrario de su programa, probablemente sea mejor imprimirlo en stdout y capturarlo con VALUE=$(program)
desde su secuencia de comandos bash.
Obtengo ** 232 ** para 'return 1000;' y ** 233 ** para 'return 1001;' – Lazer
** 1000% 256 = 232 ** – Lazer