代碼:subprocess.Popen不執行shell腳本的所有行
proc=subprocess.Popen(['sh',shFile],stderr=subprocess.PIPE,stdout=subprocess.PIPE)
out,err = proc.communicate()
問題:
shFile在1個線運行幾個shell腳本。當我從bash執行shFile時,所有的shell腳本都會執行。但是,當我使用subprocess.Popen執行它時,最後的shell腳本不會被執行。有趣的是shFile的最後一行是「echo'Done'」,它被執行。
最後6行shFile是:
sh /export/hierMultiStream_audSpec_direct/tempScripts/decoder__20_eval.sh
sh /export/hierMultiStream_audSpec_direct/tempScripts/decoder__5_eval.sh
sh /export/hierMultiStream_audSpec_direct/tempScripts/decoder__20_eval.sh
sh /export/hierMultiStream_audSpec_direct/tempScripts/decoder__15_eval.sh
sh /export/hierMultiStream_audSpec_direct/tempScripts/decoder__10_eval.sh
echo "Done"
只有decoder__10_eval.sh不執行。如果我更改腳本的順序,最後一個腳本再次執行失敗。
我能夠識別麻煩,在寫完最後一個decoder__腳本之後我沒有關閉文件。因此,子進程正在嘗試在完全寫入之前運行腳本。 – Vijay 2012-01-27 01:17:43