[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