<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
ok, I was thinking of shifting using subprocess, guess I'd better do
that and forget about this waste of time.<br>
<br>
thanks<br>
<br>
<pre class="moz-signature" cols="72">Hari Sekhon</pre>
<br>
<br>
Fredrik Lundh wrote:
<blockquote cite="midefrevs$tmd$1@sea.gmane.org" type="cite">
  <pre wrap="">Hari Sekhon wrote:

  </pre>
  <blockquote type="cite">
    <pre wrap="">I'm sorry, this may seem dense to you but I have to ask. What on earth 
are you talking about?
    </pre>
  </blockquote>
  <pre wrap=""><!----> >
  </pre>
  <blockquote type="cite">
    <pre wrap="">Why is it shifted 8 bits to the left? Why is there bitshifting at all? 
Why doesn't commands give the same exit value as os.system() and the 
unix cli?
    </pre>
  </blockquote>
  <pre wrap=""><!---->
because that's how Unix's wait() operation returns the status code (as 
mentioned in the "commands" section of the library reference).

you can use the os.WIFEXITED(status) and os.WEXITSTATUS(code) helpers to 
convert between wait return codes and signal numbers/exit codes.  see:

     <a class="moz-txt-link-freetext" href="http://docs.python.org/lib/os-process.html">http://docs.python.org/lib/os-process.html</a>

or you can forget about the obsolete "commands" module, and use the new 
subprocess module instead; e.g.

def getstatusoutput(command):
     from subprocess import Popen, PIPE, STDOUT
     p = Popen(command, stdout=PIPE, stderr=STDOUT, shell=True)
     s = p.stdout.read()
     return p.wait(), s

print getstatusoutput("ls -l /bin/ls")
(0, '-rwxr-xr-x    1 root     root        68660 Aug 12  2003 /bin/ls\n')

the subprocess module is highly flexible; see the library reference for 
details.

</F>

  </pre>
</blockquote>
</body>
</html>