El Tue, 5 Mar 2002 22:36:08 +0000
 escribi�:

> On Tue, 5 Mar 2002 21:29:19 +0100 (CET)
> Antonio Castro <[EMAIL PROTECTED]> 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.

Responder a