Проходя ответы по superuser.Хвост файла до выхода процесса
Я пытаюсь изменить это, чтобы прослушивать несколько строк и эхо-пользовательские сообщения, такие как; «Ваш сервер успешно запущен» и т.д.
Я также пытается лавировать его в другую команду т.е. пип
wait_str() {
local file="$1"; shift
local search_term="Successfully installed"; shift
local search_term2='Exception'
local wait_time="${1:-5m}"; shift # 5 minutes as default timeout
(timeout $wait_time tail -F -n0 "$file" &) | grep -q "$search_term" && echo 'Custom success message' && return 0 || || grep -q "$search_term2" && echo 'Custom success message' && return 0
echo "Timeout of $wait_time reached. Unable to find '$search_term' or '$search_term2' in '$file'"
return 1
}
Использование я имею в виду:
pip install -r requirements.txt > /var/log/pip/dump.log && wait_str /var/log/pip/dump.log
Чтобы уточнить, я Мне бы хотелось, чтобы wait_str остановил хвост, когда выйдет pip, успешно или нет.
@PS. Команда 'tail' не выходит. Мне нужно сделать это так: 'tail -f /var/log/pip/stderr.log | awk '/ Exception/{system ("echo work!")}' || awk '/ compiler/{system ("echo work!")}' 'для проверки двух строк. – Jonathan
Предполагается, что эти команды выполняются параллельно, но ваши команды показывают серийное выполнение. По определению 'pip' будет завершен, когда' wait_str' будет запущен, потому что вы соединяете их с '&&', который ждет 'pip' и проверяет его статус выхода, а затем запускает' wait_str', только если 'pip' был успешным. – tripleee