getoutput(...): Runs a command in the shell, waits for it to complete,
then returns the output
getstatusoutput(...): Runs a command in the shell, waits for it to complete,
- then returns a (status, output) tuple
+ then returns a (exitcode, output) tuple
"""
import sys
#
def getstatusoutput(cmd):
- """ Return (status, output) of executing cmd in a shell.
+ """Return (exitcode, output) of executing cmd in a shell.
Execute the string 'cmd' in a shell with 'check_output' and
return a 2-tuple (status, output). The locale encoding is used
>>> subprocess.getstatusoutput('ls /bin/ls')
(0, '/bin/ls')
>>> subprocess.getstatusoutput('cat /bin/junk')
- (256, 'cat: /bin/junk: No such file or directory')
+ (1, 'cat: /bin/junk: No such file or directory')
>>> subprocess.getstatusoutput('/bin/junk')
- (256, 'sh: /bin/junk: not found')
+ (127, 'sh: /bin/junk: not found')
+ >>> subprocess.getstatusoutput('/bin/kill $$')
+ (-15, '')
"""
try:
data = check_output(cmd, shell=True, universal_newlines=True, stderr=STDOUT)
- status = 0
+ exitcode = 0
except CalledProcessError as ex:
data = ex.output
- status = ex.returncode
+ exitcode = ex.returncode
if data[-1:] == '\n':
data = data[:-1]
- return status, data
+ return exitcode, data
def getoutput(cmd):
"""Return output (stdout or stderr) of executing cmd in a shell.