TCL erwarten mit regulären Ausdruck
Ich bin versucht, zu schreiben ein Skript, das klettert, von einem system zu einem anderen über TCL/Erwarten. Es ist für mich arbeiten. Ich brauche einen regulären Ausdruck, in dem erwarten "$ " und erwarten "# " kombiniert wird , so dass jedes system mit jedem prompt in den Pfad einbezogen werden kann.
#!/usr/bin/expect
# Using ssh from expect
log_user 0
spawn ssh test@192.168.2.24
expect "sword: "
send "test\r"
expect "$ "
send "ssh beta\r"
expect "# "
send "uptime\r"
expect "# "
set igot $expect_out(buffer)
puts $igot
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden:
Die Schlüssel dazu sind: fügen Sie die
-re
- flag, so dass wir abgleichen können, ein RE, und legen Sie die WIEDER in{braces}
so auf, dass er nicht ersetzt.Eine allgemeinere Lösung:
Diese Spiele %, # und $.
Das zweite Dollarzeichen sorgt matching das pattern erst am Ende der Eingabe.