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