commands.getstatusoutput result is not command line exit value!!!
Steve Holden
steve at holdenweb.com
Mon Oct 2 11:24:07 EDT 2006
Hari Sekhon wrote:
> I'm running a command like
>
> import commands
> result = commands.getstatusoutput('somecommand')
> print result[0]
> 3072
>
>
> However, this exit code made no sense so I ran it manually from the
> command line in bash on my linux server and it gives the exit code as
> 12, not this weird 3072 number.
>
> So I tried os.system('somecommand') in the interactive python shell and
> it too returned the same result for the exit code as the unix shell, 12,
> but re-running the commands.getstatusoutput() with the exact same
> command still gave 3072.
>
>
> Is commands.getstatusoutput() broken or something?
>
>
> -h
>
No, it's just returning the error code in the top half of a sixteen-bit
value. You will notice that 3072 == 2 * 256.
That's always been the way the Unix return code has been returned
programattically, but the shell shifts it down to make it more usab;e.
regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden
More information about the Python-list
mailing list