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.