Re: un caracter
El Tue, 5 Mar 2002 22:36:08 +0000
escribió:
> On Tue, 5 Mar 2002 21:29:19 +0100 (CET)
> Antonio Castro <acastro@ciberdroide.com> wrote:
>
> > On Tue, 5 Mar 2002, Sistemas 1 wrote:
> >
> > > Alguien conoce una forma de recibir un caracter desde stdin y ponerlo en una
> > > variable (sin esperar enter) en bash o ksh.
> >
> > Para este tipo de cosas hay que usar curses. Te dá independencia del
> > tipo de terminal a través de la variable de entorno TERM. curses o ncurses
> > es una librería para C pero no hay problema te haces un programita en C y
> > te lo colocas en un lugar accesible a la bash ($PATH).
>
> Realmente se puede hacer sólo con bash de una forma un tanto curiosa
> (con dd), yo lo hice con un compañero para una práctica de la universidad.
> No tengo el script pero mi compañero sí y él lee la lista así que supongo
> que rezongará. Además el gurú que nos enseñó a hacerlo (ni nosotros ni los
> profesores teníamos ni idea) también lee la lista.
>
> Lo único que puedo decirte es que era algo así como
> 1- deshabilitar la respuesta a las interrupciones de teclado (no recuerdo
> el comando)
>
> 2- Leer del teclado con dd
>
> 3- Volver a dejarlo todo como estaba.
>
> Si no era eso era algo parecido (así, sencillote e intuitivo ;-) ).
>
> Saludos
>
>
hola, me parecio curioso esto que escribiste, asi que despues de hacer un par de pruebas:
stty raw -F /dev/stdin
var=$(dd bs=1 count=1 2> /dev/null)
stty -raw -F /dev/stdin
y listo, "var" contiene la letra que pulsaste.
saludos, Diego
--
Son ya las ocho
el ruido en mi calle es infernal
perforan la acera
por cuarta vez o por quinta ya.
Son como hormigas
que buscan comida sin parar
la rompen, la cierran
mañana otra vez vuelta a empezar.
...
Baron Rojo.
Reply to: