подпроцесс не делает никакой магии. Обратите внимание, что sh
часто не bash в современных системах Linux, а облегченная оболочка, такая как dash. Если ваш сценарий оболочки специфичен для bash, вам нужно изменить 'sh'
на 'bash'
.
В любом случае крайне маловероятно (менее вероятно, чем выигрыш в лотерею десять раз подряд), что sh
(или bash
) "забудут" выполнить строку в скрипт. Также убедитесь, что shFile
- это то, что вы ожидаете.
Глядя на ваш обновленный скрипт, ошибка почти наверняка в скриптах, которые вы оцениваете. Например, они могут просто исчерпать временные файлы или другие непреднамеренно общие ресурсы. Пожалуйста, опубликуйте сценарии decoder__
или воспроизведите проблему с shFile, содержащим:
/bin/echo sh /export/hierMultiStream_audSpec_direct/tempScripts/decoder__20_eval.sh
/bin/echo sh /export/hierMultiStream_audSpec_direct/tempScripts/decoder__5_eval.sh
/bin/echo sh /export/hierMultiStream_audSpec_direct/tempScripts/decoder__20_eval.sh
/bin/echo sh /export/hierMultiStream_audSpec_direct/tempScripts/decoder__15_eval.sh
/bin/echo sh /export/hierMultiStream_audSpec_direct/tempScripts/decoder__10_eval.sh
echo "Done"
Если вывод «10» отсутствует, значит, у вас действительно проблема с sh. В противном случае (и опять же, с очень высокой достоверностью) проблема заключается в выполняемых вами сценариях tempScripts.