Os itens a seguir permitem personalizar o número de linhas e cols retornos de saída
export LINES=1000
export COLUMNS=1000
Eu tenho um script que executa uma série de scripts numerados 001,002,003,004 ... etc até 041 agora, será mais no futuro - e esses scripts eles mesmos usam algum controle de cursor para imprimir uma barra de progresso e outras informações de status e obtenha a largura e a altura do terminal de tput cols e tput lines , respectivamente.
Sem reescrever os sub-scripts, gostaria de reservar uma linha na parte inferior das informações de status geral para o script externo. Fiquei curioso para saber se havia uma maneira de definir quais respostas de linhas e colunas.
Deve haver uma maneira porque o tmux consegue isso. Eu estava pensando que pode haver uma variável de ambiente, mas a única mudança que eu posso ver que o tmux faz ao executar env é configurar o $ TERM para a tela.
Qualquer ajuda seria muito apreciada
Ler a fonte seria definitivo, mas para os que estão com medo, o manual é o lugar certo. Se não houver opção de linha de comando, o banco de dados do terminal em combinação com as variáveis de ambiente fornecerá ao seu script tudo o que for necessário:
tput página de manual não menciona as variáveis de ambiente. tputs na página curs_terminfo(3x) . Procurando por esclarecimento, você pode tentar a página de manual ncurses .
LINES e COLUMNS . LINES , apenas diz para ver COLUMNS . COLUMNS fornece mais informações: Specify the width of the screen in characters. Applications running in a windowing environment usually are able to obtain the width of the window in which they are executing. If neither the
COLUMNSvalue nor the terminal's screen size is available, ncurses uses the size which may be specified in the terminfo database (i.e., thecolscapability).
Agora, para essa pergunta, seria interessante se a página de manual fosse mais direta, dizendo que tput usa tputs para saída e também usa setupterm para inicialização. Ocasionalmente (quando esta informação está prontamente disponível no changelog) ninguém percebe que não está explícito no manual. Por exemplo, este item de 2002 :
+ modify setupterm() to ensure that it initializes the baudrate, for
applications such as tput (report by Frank Henigman).
Voltar ao tópico:
curs_terminfo(3x) descreve setupterm , observando use_env não foi chamado , setupterm permite que as variáveis LINES e COLUMNS substituam os valores do banco de dados do terminal. use_env página de manual reitera isso, além de comentar que os valores podem ser obtidos do sistema operacional. Novamente, o changelog menciona que tput faz isso (obtém os valores do sistema operacional), por exemplo, isto de 2007 :
+ restore a call to obtain screen-size in _nc_setupterm(), which
is used in tput and other non-screen applications via setupterm()
(Debian #433357, reported by Florent Bayle, Christian Ohm,
cf: 20070310).
Em resumo, a documentação existente fornece respostas para quase todas as perguntas sobre o comportamento das ncurses, mas você precisa fazer algumas leituras.