2017-11-10 13 views
0

私は実行して戻りコード70を終了するbashスクリプトを持っています。私はPythonで終了コードを取得しようとしますが、それは異なる0を取得します。どうすればPythonでスクリプトの終了ステータスを取得できますか?

私の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 

答えて

0

bashスクリプトの結果は0です。raspistillが異常終了しました(終了コード70)。 bashのreturnコマンドは、スクリプトの戻り値を設定します。

0

戻りコードは、スクリプトで最後に実行されたコマンドの終了ステータスです。 echo $?が正常に実行されたため、終了ステータスは0です。エコーなしでスクリプトを試してください。

0

最も簡単な解決策は以下のとおりです。

exit(returncode) 
関連する問題