[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: