我怎么能用python获得脚本退出状态?

时间:2017-11-10 00:05:44

标签: python

我有bash脚本运行并返回并退出代码70.我尝试使用python获取退出代码,但它只会得到0,这是不同的。

我的bash脚本

#!/bin/bash
DATE=$(date +"%Y-%m-%d_%H%M")
raspistill -vf -hf -o /home/pi/camera/$DATE.jpg

echo $?

输出

mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates

70

我的python代码

import os
import subprocess

os.chdir("/test")
result = subprocess.Popen("./test.sh")
text = result.communicate()[0]
returncode = result.returncode
print (returncode)

输出

mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates

70
0

3 个答案:

答案 0 :(得分:0)

bash脚本的结果为0. raspistill异常退出(退出代码70)。 bash中的return命令设置脚本的返回值。

答案 1 :(得分:0)

返回码是脚本中执行的最后一个命令的退出状态。由于echo $?成功运行,退出状态为0.尝试不带回声的脚本。

答案 2 :(得分:0)

最简单的解决方案是:

exit(returncode)