У меня есть следующее l oop, которое РАБОТАЕТ ...
# Build all modified projects
echo "$PROJECTS_TO_BUILD" | while read PROJECTS; do
log "Calling build-projects.sh ${PROJECTS}"
#$DIR/build-projects.sh ${PROJECTS}
done;
echo "I get here in both looping cases"
В КАЖДОЙ строке есть список проектов (разделенных символом новой строки). Заметьте, у меня есть одна строка, которую я oop закомментировал. Тогда у меня есть l oop, который не работает ...
# Build all modified projects
echo "$PROJECTS_TO_BUILD" | while read PROJECTS; do
log "Calling build-projects.sh ${PROJECTS}"
#$DIR/build-projects.sh ${PROJECTS}
done;
echo "I get here even though the loop only executed the first thing"
Я обрезал скрипт build-projects. sh, пока не нашел проблему в том, где я вызываю gradle ( который находится в другом l oop). Если я не вызываю gradle, все работает, и если я вызываю gradle, l oop не работает.
Я только что заметил, что обертка gradle имеет это вверху, в то время как другие скрипты находятся в bash. Имеет ли это значение?
#!/usr/bin/env sh
Еще один трюк, который я пробовал - просто добавить &, и это работает, но его нужно заблокировать. Интересно, есть ли простой способ разветвления и блокировки, и это возможно исправить?