- Gerar link
- Outros aplicativos
Postagem em destaque
- Gerar link
- Outros aplicativos
As modificações de atributos de uma determinada janela de terminal são capturadas por meio de SIGNAL_SPEC, que é um nome de sinal registrado na biblioteca <signal.h> ou um número de sinal associado a um evento especifico.
O nome do sinal associado a este evento é:
Com o comando trap cria-se uma chamada a uma função vinculando com o evento especificado.
O vídeo abaixo demonstra a monitoração do evento, imprimindo o tamanho da janela sempre que ocorre alterações nas suas dimensões.
Script: xget_termwin_size.sh
O nome do sinal associado a este evento é:
Sinal | Descrição |
WINCH | Evento de modificações de atributos de janela. (Window Change) |
Com o comando trap cria-se uma chamada a uma função vinculando com o evento especificado.
O vídeo abaixo demonstra a monitoração do evento, imprimindo o tamanho da janela sempre que ocorre alterações nas suas dimensões.
Script: xget_termwin_size.sh
#!/bin/bash
#---------------------------------------------------------
# Data: 26 de Dezembro de 2016
# Criado por: Juliano Santos [SHAMAN]
# Script: xget_termwin_size.sh
# Descrição: Monitora as dimensões da janela do terminal
# Página: http://www.shellscriptx.blogspot.com.br
# Fanpage: https://www.facebook.com/shellscriptx
#---------------------------------------------------------
# Associa a função ao evento 'WINCH' (Window Change)
trap 'ver_dimensao' WINCH
# Ocultando o cursor
tput civis
# Limpa a tela
clear
# Função
ver_dimensao()
{
# Limpa a tela.
clear
# Armazena as dimensões.
COLUNAS=$(tput cols)
LINHAS=$(tput lines)
# Coloca o cursor no centro na tela.
tput cup $((LINHAS/2)) $((COLUNAS/2-2))
# Imprime dimensão atual da janela.
echo "${COLUNAS}x${LINHAS}"
# Status 0
return 0
}
# Aguarda os dados da função
while read; do :; done
exit 0
- Associa a função 'ver_dimensao' ao evento 'WINCH'; Sempre que ocorre uma alteração na janela a função é chamada.
- A função 'ver_dimensao' imprime as dimensões atuais da janela utilizando o comando 'tput'.
- O 'while read' é necessário para monitorar o evento, capturando os dados de retorno da função.
Comentários
Postar um comentário