2017-11-10 2 views
0

나는 실행하고 돌아가서 코드 70을 종료하는 bash 스크립트를 가지고있다. 나는 파이썬으로 종료 코드를 얻으려고 노력하지만 그것은 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 

내 파이썬 코드

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 

답변

0

bash 스크립트의 결과는 0입니다. raspistill이 비정상적으로 종료되었습니다 (종료 코드 70). bash의 return 명령은 스크립트의 리턴 값을 설정합니다.

0

리턴 코드는 스크립트에서 실행 된 마지막 명령의 종료 상태입니다. echo $?이 성공적으로 실행되었으므로 종료 상태는 0입니다. 에코없이 스크립트를 시도하십시오.

0

가장 쉬운 솔루션입니다 :

exit(returncode) 
관련 문제