Dans un related question, j'ai demandé où trouver la documentation pour la fonction C "wait". C'était une tentative de comprendre les codes de retour pour le module commands.getstatusoutput(). Stackoverflow est passé, mais la documentation n'a pas aidé. Voici ce qui me déconcerte:Comment interpréter le code d'état dans Python commands.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)
Lorsqu'il est exécuté sur OS X (Leopard) j'obtenir la sortie suivante: (. Ce qui correspond à la documentation)
$ python waitest.py
Good command reported status of 0
Bad command reported status of 256
Sur OS X, en faisant un « ls/fail echo $? " obtient la sortie suivante:
$ ls /fail ; echo $?
ls: /fail: No such file or directory
1
Lorsqu'il est exécuté sur Linux (Ubuntu Hardy) que je reçois la sortie suivante:
$ python waitest.py
Good command reported status of 0
Bad command reported status of 512
sur Ubuntu, faire "ls/échec" obtient 2:
$ ls /fail ; echo $?
ls: cannot access /fail: No such file or directory
2
Alors Python semble multiplier les codes de statut par 256. Hein? Est-ce documenté quelque part?
la [réponse par @Schof] (http://stackoverflow.com/a/1535675/52074) répond à la question « lors de l'utilisation' commands.getstatusoutput() 'Pourquoi les exitcodes sont-ils multipliés par 256?" directement et avec un exemple de code. Les deux autres réponses disent plus ou moins "use" subprocess "au lieu de" commands.getstatusoutput() "" ou "voici comment utiliser subprocess". –