[Linux-users] any 'expect' gurus?

Lonni J Friedman netllama
Thu Aug 16 09:24:03 PDT 2007


On 8/15/07, Bruce Marshall <bmarsh at bmarsh.com> wrote:
> On Wednesday 15 August 2007, Lonni J Friedman wrote:
> > I'm trying to use expect for the first time to automate the
> > installation of a '.run' package which lacks a silent or automated
> > installation option.
> >
> > I used autoexpect to generate the expect script.  It works fine if I
> > run it on a specific system, however trying to run it on any other
> > system where the user running the script is not a known variable
> > results in strange behavior.  The problem appears to be that
> > autoexpect captured my shell prompt as part of its content, and since
> > that prompt differs from one system (and distro) to another, it no
> > longer gets the match its expecting.
> >
> > The odd thing is that the script still works, except it never exits
> > cleanly at the end, and instead hangs until I manually kill it.
> >
> > The man page talks about an 'exit' directive, but that doesn't seem to
> > work for me, when I append it to the end of the expect script.  There
> > are also a few references to using wildcards, but I don't see how to
> > define them.  Anyone been down this road before?
>
> Been down it just a few weeks ago....  but never heard of autoexpect so I
> didn't use that.
>
> Here's what I ended up with....  probably could be better but once I got it to
> work, I went on to other things.
>
> spawn /usr/bin/rsync -auvzr --delete -e  "ssh -p 22 -l <userid> "<usual rsync
> to and from stuff  > "
> expect "password:"
>   set timeout 20
>    send "xxxxxxpq\r"
>    set timeout -1
>    expect eof
>
> It was the  expect  eof    that did the trick for me.  Expect will wait until
> the command completes.

Thanks for the reply.  Unfortunately, that isn't helping.  Here's what
I've got right now (thanks to Kurt):
http://pastebin.sfee-hosted.com/52



More information about the Linux-users mailing list