COLUMNS
é uma variável definida pelo bash e não deve ser uma variável definida manualmente. Também não é exportado por padrão, então os aplicativos lançados pelo shell nem mesmo o veem.
Para que serve então? Ele contém a largura do seu emulador de terminal em caracteres. Seu equivalente vertical é LINES
. Ambos são usados pelo shell select
embutido. O select
integrado é usado para apresentar ao usuário uma lista de itens que eles podem selecionar. Em seguida, ele tenta exibir a lista de forma que ela caiba dentro do terminal. Exemplos abaixo:
Com uma janela de terminal 35x50:
$ select foo in a b c d e f g h i j k l m n o p q r s t u v w x y z; do echo foo="$foo"; done
1) a 7) g 13) m 19) s 25) y
2) b 8) h 14) n 20) t 26) z
3) c 9) i 15) o 21) u
4) d 10) j 16) p 22) v
5) e 11) k 17) q 23) w
6) f 12) l 18) r 24) x
#?
Com uma janela de terminal 100x10:
$ select foo in a b c d e f g h i j k l m n o p q r s t u v w x y z; do echo foo="$foo"; done
1) a 3) c 5) e 7) g 9) i 11) k 13) m 15) o 17) q 19) s 21) u 23) w 25) y
2) b 4) d 6) f 8) h 10) j 12) l 14) n 16) p 18) r 20) t 22) v 24) x 26) z
#?