brauche mal die hilfe von den spezialisten hier. Ich möchte aus vielen verschiedenen Linuxmaschinen mit expect daten herauziehen und anschliessend mit einen shellscript weiterverarbeiten. Bisher arbeite ich über ein shellscript, welches ein expectscript startet und die Ausgaben mit > in eine Datei schreibt welches das shellscript weiter verwendet. Das klappt soweit ganz gut allerdings ist es manchmal schwierig die benötigten werte herauszugreppen oder zu awk'en. Wird statt das > der expectbefehl puts verwendet, kommt oftmals noch grösserer blödsinn heraus. hier ein kurzes beispiel, das original ist einige kilobyte länger.
Code: Alles auswählen
spawn ssh $user@$host
expect "password: "
send $password\r
expect "stefan*"
log_file -noappend test.txt
send ls\r
expect "stefan*"
log_file
puts [open test.txt w] "The output is $num '$expect_out(buffer)'."
send -- "exit\r"
Code: Alles auswählen
ls
ESC[0mESC[01;32mwakeserverESC[0m
ESC]0;stefan@1234: ~^Gstefan@1234:~$
Im oben genannten code habe ich jeweils log_file und puts einzeln probiert, kommt aber in beiden fällen dasselbe heraus.