Como encontro o número de linhas verticais disponíveis no terminal?

9

Eu estou escrevendo um script que mostra o log git para um diretório quando eu cd dentro dele. Tal registro pode ser esmagador, contendo centenas de linhas. Até agora, limito isso a 20 linhas codificadas ( ... | head -n 20 ), o que é bom na tela do trabalho, mas muito na tela menor do MacBook em casa.

Eu preferiria que o log ocupasse cerca de metade da tela (vertical) em qualquer terminal. E o "terminal" também muda: é o terminal Gnome no trabalho, mas iTerm2 em casa. E eu não uso tela ou tmux.

Como faço para encontrar o número de linhas verticais disponíveis em um terminal a partir da linha de comando?

    
por jalanb 10.02.2015 / 14:10

2 respostas

17

Os parâmetros do terminal são armazenados como $LINES e $COLUMNS variables.

Além disso, você pode usar um programa de operação de termo especial, por exemplo tput :

tput lines  # outputs the number of lines of the present terminal window.
tput cols   # outputs the number of columns of the present terminal window.
    
por 10.02.2015 / 14:55
7

Este comando deve fornecer o número de linhas no terminal:

stty size | cut '-d ' -f1

Alguns sistemas podem não implementar stty size , então você pode precisar de algo assim:

stty -a | tr \; \012 | grep rows | tr -d ' rows'
    
por 10.02.2015 / 14:28