Как я могу продолжать повторять несколько команд, пока все они не будут выполнены?

У меня есть последовательность psql Команды в .sh сценарий:

#!/bin/bash
psql -U postgres -1 -f file1.sql
psql -U postgres -1 -f file2.sql
psql -U postgres -1 -f file3.sql
psql -U postgres -1 -f file4.sql
psql -U postgres -1 -f file5.sql

Я хочу продолжать повторять эти psql Команды в блоке, пока они все не преуспеют. Так что если, например, команда для file4.sql не удается, мы должны начать с file1.sql,

Должен ли я сделать такую ​​логику в .sql файл или в скрипте оболочки?

1 ответ

Решение
while ! (psql -U postgres -f file1.sql
      && psql -U postgres -f file2.sql
      && psql -U postgres -f file3.sql
      && psql -U postgres -f file4.sql
      && psql -U postgres -f file5.sql)
do
    echo retrying...
done
Другие вопросы по тегам