Como posso verificar rapidamente quantas colunas meu terminal possui? [duplicado]

0

Após o redimensionamento da janela, o tamanho da fonte muda, etc., como posso verificar com facilidade e rapidez qual é a largura de exibição atual do meu terminal?

    
por Wildcard 07.05.2016 / 10:59

3 respostas

3

Isso foi respondido (e mal respondido) repetidamente. Mas:

  • tput cols fornece informações que o sistema operacional pode informá-lo sobre o largura.

  • a variável COLUMNS pode ser definida pelo seu shell, mas (a) não é confiável (definida em determinados shells) e tem a desvantagem de que se exportada irá interferir com o full- aplicativos de tela.

  • O programa resize pode informar o tamanho para casos especiais em que o terminal Não é possível negociar o tamanho da janela com o sistema operacional.

Outras leituras: COLUMNS na página de manual do ncurses.

    
por 07.05.2016 / 11:17
0

Existe, sem dúvida, um caminho mais curto, mas o seguinte não usa nada além de utilitários POSIX especificados para fornecer uma verificação interativa rápida:

printf '0123456789\n1234567890\n' | sed '1s/./&&&&&&&&&&/g;1s/^.//;2s/.*/&&&&&&&&&&/'

Execute o comando e leia os dígitos que estão na extrema direita em sua exibição. Leia-o como um número de dois dígitos para baixo; que informa quantas colunas você tem.

Exemplo de saída (mostrada como exibida) em um terminal de 72 colunas:

$ printf '0123456789\n1234567890\n' | sed '1s/./&&&&&&&&&&/g;1s/^.//;2s/
.*/&&&&&&&&&&/'
000000000111111111122222222223333333333444444444455555555556666666666777
777777788888888889999999999
123456789012345678901234567890123456789012345678901234567890123456789012
3456789012345678901234567890
$
    
por 07.05.2016 / 10:59
0

Dependendo do seu shell, as variáveis COLUMNS (e LINES ) podem ser definidas automaticamente quando o tamanho da janela é alterado. bash, zsh, ksh do. o traço não. tcsh não faz.

De man bash :

COLUMNS Used by the select compound command to determine the terminal width when printing selection lists. Automatically set if the checkwinsize option is enabled or in an interactive shell upon receipt of a SIGWINCH.

e

LINES

Used by the select compound command to determine the column length for printing selection lists. Automatically set if the checkwinsize option is enabled or in an interactive shell upon receipt of a SIGWINCH.

Eu acho o seguinte apelido útil:

$ alias ttystat='echo $(tty) $TERM ${COLUMNS}x$LINES'
$ ttystat
/dev/pts/2 xterm 192x51
    
por 07.05.2016 / 11:14