PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rückgabe eines Programmes bzw. Telnet-Session auswerten?



netlinker
02-07-2003, 11:14
Hallo,

ich würde gern mit einem Shell-Script die Ausgaben eines Programmes bzw. einer Telnet-Session einbeziehen.

Ich denke daran an zwei Anwendungsfälle:
1. Fall passwd

hier würde im Script das Passwort ändern.
passwd sieht bei mir folgendermassen aus:
passwd
Old Password:
New password:
New password:
Re-enter new password:
Password changed

Jetzt würde ich gern die Passwörter nach "Old Password:" "New Password:" übergeben und "Password changed" eine Erfolgsmeldung ausgeben.

2. Fall Routerkonfiguration via telnet

Ich möchte mich auf einen Router einloggen und dort Befehle absetzten.
Momentan arbeite ich mit sleep, was aber nich besonders schön ist, da ich einerseits Zeit verliere, da ich nie weiß wie lang es dauert bis die Befehle angenohmen werden.

Schöner wäre es die Ausgaben des Routers ("Username:", "Passwort", "(config)"...)
erwarten würde und nach erhalt dieser fortfahren würde.

So siehts momentan aus:
(
sleep 2
echo $user
sleep 2
echo $pass
.......
sleep 999
)|telnet $ip

In beiden Fällen sollte es ungefähr so aussehen:
erwarte "passwort"
sende $passwort
erwarte "username"
sende username
....

Wäre super wenn dieses unter bash gehen würde, da ich es in ein bestehendes Script einbauen würde.
Thx Björn

pitu
04-07-2003, 06:58
Fuer solche Faelle gibts "expect":
http://expect.nist.gov/

gruss,
pitu

netlinker
05-07-2003, 00:11
Hallo pitu,

ich werde expect mal ausprobieren,

danke Björn

offe
08-07-2003, 12:07
Hallo,

Gibt es eigentlich irgendwo neuere Dokus, Artikel etc. zu expect?

Offe

Badsteve
08-07-2003, 13:34
im Linux-Magazin gibt es irgendwo einen Artikel. Den gibt es auch online.

Steve