En python (sur un système Linux), je lance une commande en utilisant os.system()
et en récupérant le code retour. Si ce code retour est différent de 0, je voudrais faire sortir le programme avec ce même code retour. Alors, je l'ai écrit:Comment faire pour contourner la limite de plage de 0-255 pour sys.exit() en python?
ret = os.system(cmd)
if ret != 0:
print "exit with status %s" % ret
sys.exit(ret)
Lorsque le code de retour est inférieur à 256, il fonctionne très bien, mais quand il est supérieur à 255, le code de sortie utilisé est 0. Comment puis-je faire sys.exit() accepte plus de codes de 255?
Edit: la limite est en fait 255
En fait, la variable ret
reçoit 256, mais sys.exit()
ne parvient pas à l'utiliser, de sorte que le programme renvoie 0 à la place. Lorsque je lance cmd
manuellement, je vois qu'il retourne 1, et non 256.
Ceci n'est pas correct, il ne teste pas la même chose. – unwind
Désolé, mon mauvais, la limite est 255, pas 127. –
La limite 255 est imposée par le shell: http://tldp.org/LDP/abs/html/exit-status.html et http: // tldp. org/LDP/abs/html/exitcodes.html –