Il y a deux concepts liés ici: C exit status, et bash return code. Ils couvrent tous deux la plage 0-255, mais bash utilise des nombres supérieurs à 126 pour ses propres besoins, il serait donc déroutant de renvoyer ceux de votre programme. Pour être sûr de limiter les codes d'état de sortie à 0-127, comme c'est le plus portable, au moins cela est impliqué par http://docs.python.org/library/sys.html#sys.exit.
Le statut de sortie C est mis dans le bash $? variable après l'exécution, mais bash utilise 127 pour indiquer 'command not found' donc vous pouvez éviter cela. Bash reference page. Bash utilise aussi 128-255 pour les signaux - ils indiquent que le processus a été tué avec un signal: exit code = 128 + signal number
. Donc, vous pourriez être en mesure de s'en tirer en utilisant des nombres proches de 255 car il est peu probable que les numéros de signal iront aussi haut. Au-delà de ces lignes directrices communes, il existe de nombreuses tentatives pour définir ce que les différents nombres devraient signifier: http://tldp.org/LDP/abs/html/exitcodes.html.
Donc, si vous voulez renvoyer un entier arbitraire de votre programme, il est probablement préférable de l'imprimer sur stdout, et de le capturer avec VALUE=$(program)
à partir de votre script bash.
Je reçois ** 232 ** pour 'return 1000;' et ** 233 ** pour 'return 1001;' – Lazer
** 1000% 256 = 232 ** – Lazer