Um exemplo rápido usando o bom e velho comando "read": :)

TIMEOUT='-t30'
UP=$'\x1b\x5b\x41'
DOWN=$'\x1b\x5b\x42'

KEY=;STRING=
while [ ! $KEY ]&&read -s -r -n1 $TIMEOUT;do
 [ ${#REPLY} -eq 0 ]&&KEY=ENTER
 STRING="$STRING$REPLY"
 [ "${STRING}" != "${STRING/$UP/}" ]&&KEY=UP
 [ "${STRING}" != "${STRING/$DOWN/}" ]&&KEY=DOWN
done
echo "$KEY"

Pode ter bugs, mas é um começo.
Se for usada em vários pontos não esqueça de usar como como função.
O usuário deve ter acesso a ^C, ^Z ^D ?

Como você já está usando o tput, talvez seja melhor começar a pesquisa que
citei usando exatamente essa palavra.



------------------------------------------------------------------
>From: "Thiago Braga Santana"
>restringir o usuário para apenas três teclas: seta pra cima, seta pra baixo
>e Enter. Outro problema é saber quando houve o evento "pressiona tecla",
>
>vi o programa recebe a opção desejada pelo usuário atraves de uma variavel
>com valor atribuido atraves do comando "read".



---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a