코드 :subprocess.Popen 쉘 스크립트의 모든 행을 실행하지 않습니다
proc=subprocess.Popen(['sh',shFile],stderr=subprocess.PIPE,stdout=subprocess.PIPE)
out,err = proc.communicate()
문제 : 1 개 호선 실행 여러 쉘 스크립트에서
shFile. bash에서 shFile을 실행하면 모든 쉘 스크립트가 실행됩니다. 그러나 subprocess.Popen을 사용하여 실행하면 마지막 셸 스크립트가 실행되지 않습니다. 흥미롭게도 shFile의 마지막 줄은 "echo 'Done'"이며 실행됩니다.
shFile의 마지막 6 개 라인
은 다음과 같습니다 만 decoder__10_eval.sh가 실행되지 않습니다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__ 스크립트를 작성한 후 파일을 닫지 못했습니다. 따라서 subprocess는 스크립트가 완전히 작성되기 전에 실행하려고했습니다. – Vijay