Thanks a lot Parag.. That was indeed helpful...

On Thu, Jan 20, 2011 at 11:50 AM, Parag Kalra <paragka...@gmail.com> wrote:

> Snippet of what I understand from your requirement:
>
> parag@ubuntu-studio:~$ cat app
> #!/bin/bash
> if [ $# -ne 1 ]
> then
>    echo -e "Invalid number of input\nUsage: app <input>"
>    exit 1
> else
>    input=$1
> fi
>
> if [ $input != "register" ]
> then
>    echo "Invalid choice"
>    exit 1
> fi
>
> echo "mac"
> echo "windoze"
> echo "Select the server to register:"
> echo -n "ubuntu(default):"
> read os
>
> case $os in
>
> mac)
>    echo "rich spoiled brat"
> ;;
> windoze)
>    echo "old arrogant user"
> ;;
> ubuntu)
>    echo "smart sexy nerd"
> ;;
> *)
>    echo "invalid choice"
> ;;
> esac
> parag@ubuntu-studio:~$
>
> parag@ubuntu-studio:~$ cat expect.pl
> use strict;
> use warnings;
> use Expect;
>
> my $app = "./app register";
> my @oss = qw/ubuntu mac windoze/;
> my $choice = $oss[rand @oss];
>
> my $exp = new Expect;
> $exp->spawn($app) or die "$!\n";
> $exp->expect(15,[
>          qr/default/ =>
>           sub {
>               my $ch = shift;
>               print $ch "$choice\n";
>               exp_continue;
>            }
>         ]
>      );
>
> parag@ubuntu-studio:~$
>
> Is this what you want?
>
> ~Parag
>
>
> On Mon, Jan 17, 2011 at 10:19 PM, Zaheer <zaheer...@gmail.com> wrote:
> > Hi,
> > I am trying to automate a cli application that has multiline output. I
> > want to be able to grep for this multi line output as single string
> > using Expect module and send some keys as input.
> >
> > The cli would be something like
> >
> > bash-3.00# /opt/myapp/bin/app register
> >
> > 1) someservername(1)
> > 2) someoptionalserver(2)
> > Select destination server or enter full URL for alternate server
> > [somedefaultserver(3)]:
> >
> > How can I do this using Expect?
> >
> > Thanks in advance..
> >
> >
> > --
> > To unsubscribe, e-mail: beginners-unsubscr...@perl.org
> > For additional commands, e-mail: beginners-h...@perl.org
> > http://learn.perl.org/
> >
> >
> >
>

Reply via email to