Implementando um simples manipulador de eventos de teclado
Publicado por Sandro Marcell (última atualização em 18/07/2011)
[ Hits: 7.064 ]
Homepage: http://sanmarcell.wordpress.com
Muitas vezes um usuário quer que determinada ação ocorra em seu script ao se pressionar uma única tecla, mas no shell não há nenhum tipo de manipulador que faça esse serviço. O mais próximo seria utilizando o built-in trap para capturar sinais de interrupção tais como: Ctrl+C, Ctrl+D, etc... Porém para o propósito acima ele não se adequá muito bem. Para resolver isso você pode utilizar (adaptando é claro!) este simples shell script.
#!/bin/sh # # Implementacao simples dum "Manipulador de eventos de teclado" em shell script. # Autor: Sandro Marcell (smarcell) # <smarcell@myopera.com> | <http://www.myopera.com/smarcell/blog> # Boa Vista, Roraima - 10/05/2011. # PATH="/bin:/usr/bin:/usr/local/bin" # Define a tecla que controlara a parada do evento tecla_controle="s" # Boas praticas de programacao =) # - Sempre defina as variaveis antes de utiliza-las tecla_pressionada="" # Poe o terminal em modo especial de interpretacao de caracteres stty -echo -icanon min 0 # O evento ocorrera dentro deste loop while true do [ "$tecla_pressionada" = "$tecla_controle" ] && break # Seus codigos aqui! echo "Pressione a tecla '$tecla_controle' para sair do loop." ; sleep 1s read tecla_pressionada done # Restaura o modo padrao do terminal stty sane echo ">> Voce pressionou a tecla '$tecla_controle' e finalizou o loop!" exit 0
Download, instalação e atualização de utilitários para Ubuntu
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Kernel Linux 5.15.0-131.141 (6)
Não consigo cadastrar nenhuma conta online (3)
O que esta havendo com o mercado de ti? (5)