En python (en un sistema Linux), estoy iniciando un comando usando os.system()
y recuperando el código de retorno. Si ese código de retorno es diferente de 0, me gustaría hacer que el programa salga con el mismo código de retorno. Así que escribí:Cómo eludir el límite del rango 0-255 para sys.exit() en python?
ret = os.system(cmd)
if ret != 0:
print "exit with status %s" % ret
sys.exit(ret)
Cuando el código de retorno es inferior a 256, que funciona bien, pero cuando es superior a 255, el código de salida utilizado es 0. ¿Cómo puedo hacer sys.exit() acepto códigos mayor que 255?
Editar: el límite es en realidad 255
De hecho, la variable ret
recibe 256, pero sys.exit()
no hace uso de ella, por lo que el programa devuelve 0 en su lugar. Cuando inicio cmd
manualmente, veo que devuelve 1, no 256.
Esto no es correcto, no prueba lo mismo. – unwind
Lo siento, mi mal, el límite es 255, no 127. –
El límite de 255 se aplica por el shell: http://tldp.org/LDP/abs/html/exit-status.html y http: // tldp. org/LDP/abs/html/exitcodes.html –