Последовательное выполнение двух команд в разных папках

Я действительно новичок в ubuntu, и у меня есть небольшой вопрос.

У меня есть две разные команды, которые нужно повторять по 4 раза каждую (так что всего 8 выполнений )

Эти CommandA.sh и CommandB.sh всегда находятся в своем рабочем каталоге (каждый рабочий каталог подготавливает файлы в папке для обработки)

Итак, как я могу написать команду bash, технически:

  1. «переходит» в первый рабочий каталог

  2. выполняет CommandA.sh

  3. ожидает завершения CommandA.sh

  4. выполняет CommandB.sh

  5. ожидает завершения CommandB.sh

  6. «переходит» в второй рабочий каталог

  7. повторяет шаги 2-5

  8. «переходит» в третий рабочий каталог

промывает и повторяет для последней рабочей папки ....

Это «легко» выполнимо или действительно это требует большого количества скриптов?

Спасибо за вашу помощь!

С уважением Макс

-1
задан 18 November 2020 в 11:23

1 ответ

#!/bin/bash

# We define an array (folders) that contains the folder names
folders[0]="first folder name"
folders[1]="second folder name"
folders[2]="third folder name"
folders[3]="fourth folder name"

for oneFolder in "${folders[@]}"; do
    cd "$oneFolder" # changes to specified folder
    commandA && commandB # Executes commandA and if it's successful, executes commandB
    # The loop continues until the last folder in the array is reached.
done

echo

Если вам нужно больше четырех папок, вы можете добавить больше в массив, следуя тому же шаблону (folders[x]="").

ВНИМАНИЕ: Это очень простой bash-скрипт, который не выполняет проверку ошибок. Вы можете включить необходимые проверки в команду A и командуB. Если возникает ошибка и она не обрабатывается, она будет возникать снова и снова во всех папках, указанных в массиве.
ПРЕДУПРЕЖДЕНИЕ 2: Вы должны использовать полные пути в имени каждой папки, например /home/user/folder1. Не только имя, чтобы убедиться, что скрипт правильно найдет все папки.

Прежде чем использовать скрипт, было бы целесообразно сделать резервную копию каждой папки.

0
ответ дан 18 November 2020 в 10:48

Другие вопросы по тегам:

Похожие вопросы: