Automatically resize Terminal window
For more information see Terminal window commands, Discover tput and Apple Shell Scripting Primer -> ANSI Escape Sequence Tables.
tput lines tput cols echo $LINES echo $COLUMNS stty size stty size | awk '{print $1}' # lines stty size | awk '{print $NF}' # columns stty size | cut -d" " -f1 # lines stty size | cut -d" " -f2 # columns stty -a | awk '/rows/ {print $4}' # lines stty -a | awk '/columns/ {print $6}' # columns stty -a | sed -E -n -e 's/^.*[^[:digit:]]([[:digit:]]+)[[:space:]]+rows;.*$/\1/p;q;' stty -a | sed -E -n -e 's/^.*[^[:digit:]]([[:digit:]]+)[[:space:]]+columns;.*$/\1/p;q;' # automatically resize the Terminal window if it gets smaller than the default size # positive integer test (including zero) function positive_int() { return $(test "$@" -eq "$@" > /dev/null 2>&1 && test "$@" -ge 0 > /dev/null 2>&1); } # resize the Terminal window function sizetw() { if [[ $# -eq 2 ]] && $(positive_int "$1") && $(positive_int "$2"); then printf "\e[8;${1};${2};t" return 0 fi return 1 } # the default Terminal window size: 26 lines and 107 columns sizetw 26 107 # automatically adjust Terminal window size function defaultwindow() { DEFAULTLINES=26 DEFAULTCOLUMNS=107 if [[ $(/usr/bin/tput lines) -lt $DEFAULTLINES ]] && [[ $(/usr/bin/tput cols) -lt $DEFAULTCOLUMNS ]]; then sizetw $DEFAULTLINES $DEFAULTCOLUMNS elif [[ $(/usr/bin/tput lines) -lt $DEFAULTLINES ]]; then sizetw $DEFAULTLINES $(/usr/bin/tput cols) elif [[ $(/usr/bin/tput cols) -lt $DEFAULTCOLUMNS ]]; then sizetw $(/usr/bin/tput lines) $DEFAULTCOLUMNS fi return 0 } # SIGWINCH is the window change signal trap defaultwindow SIGWINCH sizetw 26 70 sizetw 10 107 sizetw 4 15