Trong một related question, tôi hỏi nơi tìm tài liệu cho hàm C "chờ". Đây là một nỗ lực để tìm ra mã trả về cho mô-đun commands.getstatusoutput(). Stackoverflow đã đi qua, nhưng tài liệu không giúp được gì. Đây là những gì tôi bối rối:Cách diễn giải mã trạng thái trong lệnh Python.getstatusoutput()
#!/usr/bin/python
import commands
goodcommand = 'ls /'
badcommand = 'ls /fail'
status, output = commands.getstatusoutput(goodcommand)
print('Good command reported status of %s' % status)
status, output = commands.getstatusoutput(badcommand)
print('Bad command reported status of %s' % status)
Khi chạy trên OS X (Leopard) tôi nhận được kết quả như sau: (. Mà phù hợp với tài liệu hướng dẫn)
$ python waitest.py
Good command reported status of 0
Bad command reported status of 256
Trên OS X, làm một "ls/thất bại ; echo $? " được kết quả như sau:
$ ls /fail ; echo $?
ls: /fail: No such file or directory
1
Khi chạy trên Linux (Ubuntu Hardy) tôi nhận được kết quả như sau:
$ python waitest.py
Good command reported status of 0
Bad command reported status of 512
Trên Ubuntu, làm "ls/thất bại" được một 2:
$ ls /fail ; echo $?
ls: cannot access /fail: No such file or directory
2
Vì vậy, Python dường như đang nhân mã trạng thái với 256. Huh? Đây có phải là tài liệu ở đâu đó không?
các [câu trả lời bằng @Schof] (http://stackoverflow.com/a/1535675/52074) trả lời câu hỏi "khi sử dụng' commands.getstatusoutput() 'tại sao các exitcodes nhân với 256?" trực tiếp và với mã ví dụ. Hai câu trả lời khác nhiều hay ít nói "sử dụng' subprocess' thay vì 'commands.getstatusoutput()' "hoặc" đây là cách sử dụng subprocess ". –