Ich bin mit dem nächsten expect
Skript So um die running-config eines Schalters zu bekommen und es dann in eine Datei speichern:Wie kann ich spezielle Zeichen von erwarten entfernen?
#!/usr/bin/expect
set timeout 9
set username [lindex "foo"]
set password [lindex "bar"]
set hostname [lindex "1.2.3.4"]
spawn ssh -q [email protected]$hostname
expect {
timeout { send_user "\nTimeout!\n"; exit 1 }
"*assword"
}
send "$password\n"
expect {
timeout { send_user "\nWrong password\n" ; exit 1 }
"switch-00>"
}
send "enable\n"
expect {
"switch-00#"
}
send "show running-config\n"
log_file -noappend log.txt
expect {
-ex "--More--" { send -- " "; exp_continue }
"*#" { log_file; send "exit\r" }
}
send "exit\n"
close
Es funktioniert, wie es für dieses ausnehmen soll:
--More--^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H
die jedes Mal in log.txt erscheint "--More--" wird gedruckt.
Es ist kein Thema zu entfernen „--Mehr--“ später bash verwenden, aber wenn ich es tue:
grep "^H" log.txt
gibt es keinen Ausgang, also kann ich es nicht entfernen, da es nicht übereinstimmt.
Ich habe versucht, einen Weg zu finden, keine speziellen Zeichen mit expect
auszugeben, wenn möglich, aber habe keine gefunden, also frage ich hier, falls jemand weiß.
Eine Lösung mit bash würde mir auch helfen, aber expect
ist bevorzugt.
kann nicht eingestellt Sie die 'konfigurieren Anschlusslänge 0 ', so dass Sie nicht bekommen,' --Mehr - 'in der Ausgabe? – Dinesh
Nein, es ist ein Lenovo-Schalter, scheint keine solche Option zu haben. – sysfiend