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.