Arthur Meeks Meeks wrote:
Hello,
I'm creating an expect script to:
telnet router
execute command
exit
This seems to be quite easy when you have 1 router, the problem is I
have a list of 40 routers, so I thought about creating a expect script
but I have gotten some problems.
The first one is...how to include all the machines?
I thought about something like: for d in $(cat router_list); do
expect_script $d;done
And if that worked, the script would take $d and do:
telnet $d
execute my command
exit
But I don't know how to accomplish that as the script and the "expect
--exact" output are different, one per router, basically because:
expect -exact "telnet router23\r
Trying 192.168.33.12...\r
Connected to router23.test.\r
Changes in all the routers, I have tried to delete that whole
paragraph so it only expects "Login", but it doesn't work.
And also...how to include the script in the "for" loop?.
Any idea will be appreciated.
Arthur.
If you are up to a little perl, the expect perl module will do what you
want.
However, its not impossible to use shell tricks to do what you want.
Generate a list:
list=`cat my_list`
for name in $list
do
expect ... $name ...
done
Or you might want to mix that with another script to generate an expect
script:
#!/bin/sh
list=`cat my_list`
for name in $list
do
cat > /tmp/script << _EOF
here is
my expect
script including $name
_EOF
expect < /tmp/script
done
But in perl, you could do it all at once.
Good luck!
--
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines