在一个相关问题中,我询问在哪里可以找到 C 函数“等待”的文档。这是试图找出 commands.getstatusoutput() 模块的返回码。Stackoverflow 通过了,但文档没有帮助。这让我感到困惑:
#!/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)
在 OS X (Leopard) 上运行时,我得到以下输出:(与文档匹配。)
$ python waitest.py
Good command reported status of 0
Bad command reported status of 256
在 OS X 上,执行“ls /fail ; echo $?” 得到以下输出:
$ ls /fail ; echo $?
ls: /fail: No such file or directory
1
在 Linux (Ubuntu Hardy) 上运行时,我得到以下输出:
$ python waitest.py
Good command reported status of 0
Bad command reported status of 512
在 Ubuntu 上,执行“ls /fail”会得到 2:
$ ls /fail ; echo $?
ls: cannot access /fail: No such file or directory
2
所以 Python 似乎将状态码乘以 256。嗯?这是在某处记录的吗?