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

RE: un caracter



Gracias a todos por la ayuda, como esto voy a tener que usarlo en un sistema
con bourne shell y sin compilador C (la idea es navegar por un listado con
el teclado, mostrando una porción en pantalla), creo que es la mejor
solución a mi problema, para bourne:

stty raw
var=`dd bs=1 count=1 2> /dev/null`
stty -raw
echo "EL Caracter es: $var"

-----Mensaje original-----
De: Diego Alvarez [mailto:diego.alvarez@entelchile.net]
Enviado el: Martes, 05 de Marzo de 2002 22:58
Para: Debian-Users
Asunto: 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.


--
To UNSUBSCRIBE, email to debian-user-spanish-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact
listmaster@lists.debian.org




Reply to: