Git любит перенаправлять свой вывод в LESS=FRSX less, но ключи -F и -X взаимодействуют плохо: -X не дает less перейти в режим, где у него свой scrollback, отчего после активной прокрутки вверх-вниз терминал захламляется повторяющимися строками, но если убрать -X, то ключ -F (сразу выйти, если файл помещается на одном экране) именно это и делает, и для маленьких кусков текста ничего на экране не появляется.
Есть какой-нибудь приличный способ вывести данные просто на экран, если их не очень много, а иначе запустить less?
Пока только придумал такой костыль:
#!/bin/sh -e
SIZE="$(stty -F /proc/$$/fd/1 size 2>/dev/null)" || { cat; exit 0; }
LINES="${SIZE%% *}"
START="$(head -n $LINES)"
if IFS="" read LAST
then
{
echo "$START"
echo "$LAST"
cat
} | less "$@"
else
echo "$START"
fi
А какие штатные средства можно задействовать для этого?