Я пытаюсь создать bash-скрипт для запуска веб-сервера. Мне нужно, чтобы скрипт отображал выходные данные веб-сервера в консоли, пока на консоли не появится определенное слово, указывающее, либо инициализация сервера завершена успешно, либо произошла какая-то ошибка.
Мне удалось показать выходные данные консоли до истечения времени ожидания:
#!/bin/bash
(exec /opt/aspnetcore-runtime-3.0.0-linux-x64/dotnet /opt/app/Launcher.dll &) | (timeout --foreground 6 cat; cat > /dev/null &)
Если ошибка возникает раньше, чем через 6 секунд, то веб-сервер останавливается, и управление возвращается к терминалу, что является требуемым поведением.
Однако, если инициализация веб-серверабыл успешно завершен через 2 секунды, пользователь должен ждать еще 4 секунды, пока сценарий не завершится. Я хочу вернуть элемент управления обратно в терминал, как только на консоли появится какая-нибудь фраза (например, SUCCESS INIT!
).