Вложенный для L oop Control Flow Sequence - PullRequest
0 голосов
/ 08 мая 2020
for PRODUCT in ${AAA} ${BBB} ${CCC}; do
  for GITBRANCH in ${AAA_BRANCH} ${BBB_BRANCH} ${CCC_BRANCH}; do
    cd ${PRODUCT}
    git checkout ${GITBRANCH}
done;
done

Мой вложенный for loop в bash (см. Выше) выполняет:

  • cd в репо AAA и проверяет AAA_BRANCH
  • cd в AAA репо и проверьте BBB_BRANCH
  • cd в репо AAA и проверьте CCC_BRANCH
  • cd в репо BBB и проверьте BBB_BRANCH
  • cd в репо BBB и проверьте CCC_BRANCH
  • cd в репо CCC и проверьте AAA_BRANCH
  • cd под CCC репо и проверьте BBB_BRANCH
  • cd в репо CCC и проверьте CCC_BRANCH

Я хочу, чтобы мой l oop был:

  • cd в репо AAA и проверьте AAA_BRANCH
  • cd в репо BBB, проверьте BBB_BRANCH
  • cd в репо CCC и проверьте CCC_BRANCH

Как я могу достичь sh этого? Спасибо

1 Ответ

2 голосов
/ 08 мая 2020

Используйте вместо них массивы и перебирайте индексы.

products=(aaa bbb ccc)
branches=(aaa_branch bbb_branch ccc_branch)
for i in "${!products[@]}"; do
  cd "${products[i]}"
  git checkout "${branches[i]}"
  cd -
done
...