Re: atascado con un script menu
El mar, 05-08-2008 a las 19:24 +0200, sercuto@alumni.uv.es escribió:
> Hola a todos.
>
> Quiero hacer un script que presente un menu en la consola (elije 1, 2,
> 3), y añadirle la funcionalidad de un timeout, el cual trancurridos
> unos segudos elija una opción por defecto.
>
> Lo estoy intentando en Perl (pero si se puede hacer en bash o incluso
> C me viene bien, la idea es que se pueda ejecutar en debian), pero me
> estoy liando.
>
> El menú lo tengo claro, un stdin y unos cuantos if, el problema es que
> no sé como implementar el timeout.
>
> Buscando por el google, he leido que para realizar menus interactivos
> no se utiliza el stdin ya que no permite automatizar el proceso de
> entrada de datos.
>
> Mirando en cpan he encontrado cosas como expect, send, spawn y en C he
> visto que la librerias tipo conio y iostream me pueden venir bien.
>
> El caso es que cada vez me estoy perdiendo más y por eso os pido ayuda.
>
> Ni que decir tiene que todo esto es porque estoy muy justito en
> programación.
>
> ¿Por donde he de enfocar la cosa?
>
En perl es muy simple
utiliza el SIGNAL alarm()
hay muchos ejemplos en la web, si no encontras despues te puedo pasar
alguno
Y por favor NO hagas crossposting (estas mandando lo mismo a la lista de
ubuntu)
> De momento solo he llegado a esto:
>
> #!/usr/bin/perl
> use Term::ANSIColor;
>
> imprime_menu();
>
> close(STDIN);
> print STDOUT "Por favor elije una opción:\n";
> $input = <STDIN>;
> print STDOUT "The number is $input\n";
> chop($input);
>
> if ($input =='') {
> sleep 5;
> print 'vacio!';
> print "Han pasado 5 valiosos segundos!!\n";
> $input = "5\r";
> print $input;
> close(STDIN);
> }
> if ($input == '1') {
> print 'opcion1!';
> }
> if ($input eq '2') {
> print "\nopcion2\n";
> }
>
> Gracias
>
>
>
Reply to: