#!/bin/bash # pager . ./wrap cleanup() { tput reset exit } refresh() { shopt -s checkwinsize ( : : ) printf '\e[?1049h\e?7l\e[2J\e[3;%sr\e[999H' "$((LINES - 1))" } resize() { refresh printf '\e7\e[?25l\e[H' _wrap "$file" printf '\e[999H\e[?25h' } _wrap() { wrap "$COLUMNS" <"$1" } main() { refresh file="$1" resize trap resize WINCH trap cleanup INT while :; do : done } if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then main "$@" fi