Остановить все индексы, если тест не прошел

Рассмотрим ситуацию:

файлы сценариев: main.sh , sub1.sh и sub2.sh

  • Нажмите любую клавишу для приостановки сценария оболочки, нажмите еще раз, чтобы возобновить
  • где я должен изменить данный сценарий оболочки?
  • помощь для создания сценария оболочки для печати буднего дня и выходных
  • Скрипт для нескольких полей
  • В чем смысл if ;?
  • при чтении строки в сценарии оболочки - как остановить цикл?
  • В main я вызываю sub1 и sub2 . Затем я запускаю main для всех файлов из папки, используя for :

     for file in samples/*.jpg; do bash ./main.sh $file; done 

    и он работает очень хорошо.

    Но в sub1 я sub1 некоторые значения, и я хотел бы остановить выполнение main для текущего $file если тест завершился неудачно, и начать снова main для следующего файла из цикла.

    Например, если папка содержит jpg-файлы 01,...,09 а тест в sub1 не выполняется для файла 04 тогда остановите sub1 для 04 , пропустите sub2 для 04 , остановите остальную часть main для 04 и запустите main для 05 .

    Тест:

     if (( $numcc % 3 == 0 )) then ... else ... fi 

  • Напишите сценарий для создания пользователей с заранее определенными паролями
  • Разбиение файла с использованием префикса
  • В то время как проверка состояния JBoss в цикле вниз или нет,
  • Может кто-то сказать мне, что я делаю неправильно / как исправить этот сценарий оболочки?
  • Как отфильтровать некоторые файлы из моего каталога?
  • Заменить второе вхождение строки
  • One Solution collect form web for “Остановить все индексы, если тест не прошел”

    main.sh sub1.sh три примера сценариев: main.sh , sub1.sh и sub2.sh Они вызываются, как упоминалось в сообщении, т. Е. for file in samples/*.jpg; do bash ./main.sh $file; done for file in samples/*.jpg; do bash ./main.sh $file; done

    Основная идея заключается в том, что sub1.sh создает временный файл, если тест терпит неудачу; sub2.sh проверяет наличие этого файла. Наконец, файл блокировки удаляется в main.sh каждый раз перед main.sh двух других скриптов. Обратите внимание, что это не рекомендуемый способ обработки временных файлов, а просто для иллюстрации использования.

    Чтобы смоделировать тест, я проверил, равномерное или случайное целое. Замените свои фактические условия испытаний там.

    Содержимое main.sh :

     #!/bin/bash export LOCK_FILE=sub1_failed.txt echo "$0 $1" [ -f "$LOCK_FILE" ] && rm "$LOCK_FILE" bash ./sub1.sh "$1" bash ./sub2.sh "$1" 

    Содержимое sub1.sh :

     #!/bin/bash echo "$0 $1" if (( $RANDOM % 2 == 0 )) then # Test failed echo "> $0 failed: Creating $LOCK_FILE ..." touch "$LOCK_FILE" else # Test successful : fi 

    Содержимое sub2.sh :

     #!/bin/bash echo "$0 $1" if [ -f "$LOCK_FILE" ] then echo 'Skipping sub2.sh' exit 1 else echo 'Executing sub2.sh as usual' fi echo 'sub2.sh done' echo '' 

    Пример вывода из одного из экземпляров выполнения показан ниже. Из-за характера $RANDOM выход будет отличаться при каждом запуске вышеуказанного кода.

     ./main.sh samples/01.jpg ./sub1.sh samples/01.jpg > ./sub1.sh failed: Creating sub1_failed.txt ... ./sub2.sh samples/01.jpg Skipping sub2.sh ./main.sh samples/02.jpg ./sub1.sh samples/02.jpg > ./sub1.sh failed: Creating sub1_failed.txt ... ./sub2.sh samples/02.jpg Skipping sub2.sh ./main.sh samples/03.jpg ./sub1.sh samples/03.jpg ./sub2.sh samples/03.jpg Executing sub2.sh as usual sub2.sh done ./main.sh samples/04.jpg ./sub1.sh samples/04.jpg > ./sub1.sh failed: Creating sub1_failed.txt ... ./sub2.sh samples/04.jpg Skipping sub2.sh ./main.sh samples/05.jpg ./sub1.sh samples/05.jpg ./sub2.sh samples/05.jpg Executing sub2.sh as usual sub2.sh done 
    Linux и Unix - лучшая ОС в мире.