В связанном вопросе я спросил, где найти документацию для функции C "wait". Это была попытка выяснить коды возврата для модуля 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. А? Это где-то задокументировано?