Es gibt zwei verwandte Konzepte hier: C-Exit-Status und Bash-Return-Code. Sie decken beide den Bereich von 0 bis 255 ab, aber Bash verwendet Zahlen über 126 für eigene Zwecke, so dass es verwirrend wäre, diese aus Ihrem Programm zurückzugeben.
Um sicher zu sein, begrenzen Sie die Statuscodes des Ausgangs auf 0-127, da dies am tragbarsten ist, zumindest impliziert durch http://docs.python.org/library/sys.html#sys.exit.
Der C-Exit-Status wird in die bash $ gesetzt? Variable nach der Ausführung, aber Bash verwendet 127, um "Befehl nicht gefunden" anzuzeigen, also möchten Sie das vielleicht vermeiden. Bash reference page.
Bash verwendet auch 128-255 für Signale - sie zeigen an, dass der Prozess mit einem Signal beendet wurde: exit code = 128 + signal number
. Sie können also mit Zahlen umgehen, die nahe bei 255 liegen, da es unwahrscheinlich ist, dass die Signalzahlen so hoch gehen.
Jenseits dieser allgemeinen Richtlinien gibt es viele Versuche zu definieren, was verschiedene Zahlen bedeuten sollten: http://tldp.org/LDP/abs/html/exitcodes.html.
So wollen Sie eine beliebige ganze Zahl aus Ihrem Programm zurückgeben, ist es wahrscheinlich am besten, es auf stdout zu drucken, und erfassen Sie es mit VALUE=$(program)
von Ihrem Bash-Skript.
Ich bekomme ** 232 ** für 'return 1000;' und ** 233 ** für 'return 1001;' – Lazer
** 1000% 256 = 232 ** – Lazer