2012-06-02 2 views
-1

Я использую скрипт bash для автоматического запуска программы моделирования. Эта программа периодически печатает текущее состояние симуляции в консоли, например, «шаг Итерации 42 заканчивается нормально».Abort bash script, если появляется некоторая строка вывода консоли

Можно ли прервать скрипт, если вывод на консоль является чем-то вроде «warning: параметр xyz вне диапазона действия»? И что я могу сделать, если вывод консоли передан в текстовый файл?

Извините, если это звучит глупо, я новичок в этом :-)

Заранее спасибо

+0

Вы можете попробовать 'ожидать' инструмент. – kev

+2

Вы можете задать более качественные вопросы, разместив образец кода и образец. –

ответ

1

Это не идеальная работа для Bash. Тем не менее, вы можете, конечно, захватить и протестировать STDOUT внутри цикла итерации Bash, используя примесь условностей, grep-подобных инструментов и подстановку команд.

С другой стороны, если Bash не выполняет цикл (например, он просто ждет завершения внешней команды), тогда вам нужно использовать что-то вроде expect. Функция Expect предназначена для мониторинга выходных потоков для регулярных выражений и выполнения ветвлений на основе совпадений выражений.

Смежные вопросы