Стандарт подкачки страниц с помощью 'больше', и передавая по каналу к системному журналу

Я реализовал сценарий обертки, который заставляет все команды, выполняемые с помощью этого сценария обертки регистрировать (через rsyslog) вещи, такие как время выполнения, пользователь, который выполнил команду и код выхода.

Я пытаюсь реализовать подкачку страниц, и я встретился с проблемой с 'больше' команда. Корень моей проблемы - то, что 'больше', кажется, выходит, когда она передается по каналу к другой программе, например.

echo -e "this\nis\na\ntest" | more -3 | cat

Это распечатает 4 строки, хотя, если мы обрезаем '| кошка' в конце, затем это приостановится после печати 3 строк, как ожидалось.

По общему признанию использование 'меньше' вместо 'большего' работает, хотя это не имеет желаемого эффекта, поскольку это открывает отдельное "окно" и не позволяет прокрутку назад, после того как это завершается (мне не нужна способность прокрутить назад в способе, которым 'меньше' позволяет любому).

Мое текущее решение состоит в том, чтобы использовать команды 'головы' и 'хвоста' для получения эффекта, который я хочу, но существуют некоторые другие проблемы стоять перед их также.

Кто-либо знает, что секрет делает 'больше' работой в способе, которым я предположил? Предложения для другого инструмента подкачки страниц, который более прост (поддержки Входят, расположите с интервалами, и 'q' действия) также приветствуются.

Спасибо!

0
задан 3 September 2014 в 13:58

1 ответ

Кажется, что использование tee для перенаправления в файл и подкачку страниц stdout было бы более соответствующим, чем подкачка страниц посреди конвейера:

printf "%s\n" this is a test | tee /tmp/some.file | more -3
1
ответ дан 5 August 2019 в 07:17

Другие вопросы по тегам:

Похожие вопросы: