Подтвердить что ты не робот

Захватить последние n строк с выхода консоли

Я хочу создать оболочку script, которая эффективно захватит последние n строк из sterr и stin, которые были выведены на консоль. У меня сеанс экрана, на котором выполняется процесс, который перезапустит его, если он завершится с помощью хакерского бесконечного цикла:

#!/bin/bash
#This script will be started in a screen session
counter=0
while [ $counter -lt 10 ]; do
    ./run_some_process;
     last_output=#GRAB PREVIOUS OUTPUT FROM CONSOLE HERE AND LOG TO FILE
     echo -e "$last_output" >> mylog.txt;
    sleep 5; #sleep for a few seconds before restarting
done

Мне нужно, чтобы 7-я строка кода захватила последние 10 или около того строк из stderr и stdin и добавила их в файл журнала

4b9b3361

Ответ 1

 ./run_some_process 2>&1 | tail -10 >>logfle

tail -10 даст вам последние десять строк, 2>&1 перенаправляет stdout на stderr, >>logfle добавляется в файл журнала.