Implementando um simples manipulador de eventos de teclado
Publicado por Sandro Marcell (última atualização em 18/07/2011)
[ Hits: 7.396 ]
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
Script para relatório de download de arquivos via Squid
zswaplig.sh - Um "Ligador" de ZSWAP, SWAP em RAM para Sabayon Linux
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Compilando o gcc-g++ 15.2[AJUDA] (7)
o que é esta mensagem? relatorios do sistema (4)
O que você está ouvindo agora? [2] (246)









