Isso foi respondido (e mal respondido) repetidamente. Mas:
-
tput colsfornece informações que o sistema operacional pode informá-lo sobre o largura. -
a variável
COLUMNSpode 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
resizepode 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.