Acquire Terminal Width & Height

  1. tput cols
    tput rows
    tput -S <<< cols
    tput -S <<< rows

     

  2. stty size

     

  3. echo $LINES
    echo $COLUMNS

    LINES & COLUMNS are not environment variables, they are just normal variables to bash, It's only available in interactive shell

    the checkwinsize option only initialize the variables after waiting for subshell to finish.

     

     

     $LINES and $COLUMNS are updated after SIGWINCH is sent, actually after any interactive command execution. If you try to update PS1 with trap SIGWINCH you can't use $LINES and $COLUMNS, they keep old values 

posted @ 2022-01-22 19:36  ascertain  阅读(31)  评论(0编辑  收藏  举报