Có hai khái niệm có liên quan ở đây: trạng thái thoát C và mã trả lại bash. Cả hai đều bao gồm phạm vi 0-255, nhưng bash sử dụng số trên 126 cho mục đích riêng của nó, do đó, nó sẽ gây nhầm lẫn để trả lại những người từ chương trình của bạn.
Để có các mã trạng thái thoát giới hạn an toàn đến 0-127, vì đó là mã di động nhiều nhất, ít nhất điều đó được ngụ ý bởi http://docs.python.org/library/sys.html#sys.exit.
Trạng thái thoát C được đưa vào bash $? biến sau khi thực hiện, nhưng bash sử dụng 127 để chỉ ra 'lệnh không tìm thấy', do đó bạn có thể muốn tránh điều đó. Bash reference page.
Bash cũng sử dụng 128-255 tín hiệu - chúng cho biết quá trình đã bị giết bằng tín hiệu: exit code = 128 + signal number
. Vì vậy, bạn có thể có được để có được đi với việc sử dụng số gần 255 vì nó không chắc rằng số tín hiệu sẽ đi mà cao.
Ngoài những hướng dẫn chung, có nhiều cố gắng xác định những con số khác nhau có nghĩa là gì: http://tldp.org/LDP/abs/html/exitcodes.html.
Vì vậy, bạn muốn trả về một số nguyên tùy ý từ chương trình của mình, có lẽ tốt nhất bạn nên in nó thành stdout và chụp nó bằng VALUE=$(program)
từ tập lệnh bash của bạn.
Nguồn
2010-09-17 09:28:54
Tôi nhận được ** 232 ** cho 'return 1000; 'và ** 233 ** cho' return 1001;' – Lazer
** 1000% 256 = 232 ** – Lazer