W pythonie (w systemie Linux) uruchamiam polecenie, używając os.system()
i odzyskując kod powrotu. Jeśli ten kod powrotu jest inny niż 0, chciałbym, aby program zakończył działanie z tym samym kodem powrotu. Więc napisałem:Jak ominąć limit zasięgu 0-255 dla sys.exit() w pythonie?
ret = os.system(cmd)
if ret != 0:
print "exit with status %s" % ret
sys.exit(ret)
Gdy kod powrotu jest niższa niż 256, to działa dobrze, ale gdy jest większa niż 255, kod wyjścia używany jest 0. W jaki sposób mogę dokonać sys.exit() akceptuje kody większa niż 255?
Edit: limit jest faktycznie 255
W rzeczywistości, zmienna ret
otrzyma 256, ale sys.exit()
zawiedzie go używać, więc program zwraca 0 zamiast. Kiedy uruchomić cmd
ręcznie, widzę, że zwraca 1, a nie 256.
To nie jest poprawne, nie testuje tego samego. – unwind
Niestety, mój zły, limit wynosi 255, a nie 127. –
Limit 255 jest wymuszany przez powłokę: http://tldp.org/LDP/abs/html/exit-status.html i http: // tldp. org/LDP/abs/html/exitcodes.html –