Sie können dies tun, indem Sie den tee
verwenden Befehl:
telnet $someIp | tee -a -i someFile
Expect verfügt über ein programmatisches Mittel zum Starten und Stoppen der Aufzeichnung (oder Protokollierung). Bei einem gegebenen Dateinamenargument ist die log_file
Der Befehl öffnet die Datei und beginnt mit der Aufnahme. Wenn bereits eine Protokolldatei geöffnet ist, wird die alte Datei zuerst geschlossen.
Die Aufzeichnung erfolgt durch Anhängen an die Datei. Wenn also zuvor etwas in der Datei gespeichert wurde, bleibt es erhalten. Um neu zu beginnen, verwenden Sie die -noappend
Flagge.
Sie können Speicherplatz sparen, indem Sie die Protokollierung deaktivieren, wenn sie nicht erforderlich ist. Dies wird durch den Aufruf von log_file
erreicht ohne Argumente. Beispielsweise beginnt das folgende Fragment mit der Aufzeichnung, führt einige E/A aus, stoppt die Aufzeichnung, führt weitere E/A aus und beginnt dann erneut mit der Aufzeichnung.
expect . . . ; send
# start recording
log_file telnetlog
expect . . . ; send
# stop recording
log_file
expect . . . ; send
# start recording
log_file telnetlog
expect . . . ; send
Standardmäßig log_file
zeichnet nur auf, was der Benutzer sieht. Wenn der log_user
Befehl aufgerufen wurde, um die Ausgabe eines erzeugten Programms zu unterdrücken, wird die unterdrückte Ausgabe nicht von log_file aufgezeichnet, da der Benutzer sie auch nicht sieht. Die log_file
kann die unterdrückte Ausgabe mit -a
aufzeichnen Flag (für "alle Ausgaben").
log_file -a log
Wie zuvor kann diese Protokollierung deaktiviert werden, indem log_file ohne Argumente ausgegeben wird. Um nur das zu protokollieren, was der Benutzer sieht, rufen Sie log_file ohne das -a auf.
log_file -a log
expect . . . ; send . . .
log_file log
Referenz:Exploring Expect