erwarten stellt in Datei schreiben

Schreibe ich eine expect-Skript, das ssh-Verbindung auf mehrere IP-Adressen testen Sie Ihre Konnektivität. Ich möchte zu eine "legt" - Anweisung zu schreiben, die das Ergebnis der einzelnen Tests in einer Datei auf dem Rechner nach dem aufrufen des Skripts. Obwohl ich denke, ich bin nach dem Handbuch für puts zu schreiben, um eine Datei schreibt er nur nach stdout. Finden Sie das Skript unten. Das Endergebnis ist, dass die Datei erstellt wird auf der lokalen Maschine, aber kein Ausgang gerichtet ist. Stattdessen wird die Ausgabe geht nach stdout.

#!/bin/bash

USER=user
PASSWORD=password
IPSTART=12.34.56.
OUTFILE="TEST.log"
PROMPT="#"

for IPEND in `seq 200 231`
do

expect -c "
        set timeout 3
        set chan [open $OUTFILE w]
        spawn ssh $USER@$IPSTART$IPEND
                expect -re \".*ssword.*\" {send \"$PASSWORD\n\"}

                expect {
                        -re \".*Are you sure you want to continue connecting.*\" {send \"yes\n\"; exp_continue}
                        -re \".*$PROMPT.*\$.*\"  {puts $chan \"$IPSTART$IPEND\n\"; send \"exit\n\"}
                }

        close $chan
"

done

Frage ich mich, ob es möglicherweise ein Problem mit dem zitieren, aber ich kann ' T es herausfinden.

Als Referenz, dies ist das Beispiel von http://www.tcl.tk/man/tcl8.4/TclCmd/puts.htm

set chan [open my.log a]
set timestamp [clock format [clock seconds]]
puts $chan "$timestamp - Hello, World!"
close $chan

InformationsquelleAutor Rusty Lemur | 2012-10-24

Schreibe einen Kommentar