Lesen Sie die Datei in String und führen Sie eine Schleife in Expect Script aus

Was ich versuche zu tun, ist:

Ein ... kreieren.exp Datei, die aus dem lesen wird*.txt Datei aus demselben Verzeichnis und parsen Sie den gesamten Inhalt der Textdatei in eine Zeichenfolgenvariable im Expect-Skript.Schleifen Sie die Zeichenfolge, die eine Reihe von Hostnamen enthält, und führen Sie eine Reihe von Befehlen aus, bis die Zeichenfolge aufgelistet ist.

Das Skript liest also eine Reihe von Hostnamen aus einemtxt Datei im selben Verzeichnis, und lesen Sie sie dann in eine Zeichenfolge, und die.exp file meldet sich automatisch bei jedem von ihnen an und führt eine Reihe von Befehlen aus.

Ich habe den folgenden Code geschrieben, aber er funktioniert nicht:

#!/usr/bin/expect

set timeout 20
set user test
set password test

set fp [open ./*.txt r]
set scp [read -nonewline $fp]
close $fp

spawn ssh $user@$host

expect "password"
send "$password\r"

expect "host1"
send "$scp\r"

expect "host1"
send "exit\r"

Jede Hilfe wird sehr geschätzt ....

Antworten auf die Frage(3)

Ihre Antwort auf die Frage