Ich arbeite an erwarten, dass Skript einen Installer aufrufen. Sh Für eine ordentliche Installation, es funktioniert gut.Expect Script - variierende sendet
Aber wenn der Installer für Pre-Checks fehlschlägt, unterscheidet sich die Reihenfolge des Sendens und ich habe keine Kontrolle über die Bestellung.
Nach 2 erwarten "Pfad", validiert das Installationsprogramm intern und geht mit Schritt 3 und weiter und endet.
Aber wenn nach dem zweiten Pfad erwarten, fehlschlägt Installer Pre-Checks dann existiert es und fordert zum letzten Schritt, dh für den Pfad erneut.
Derzeit, wenn das Skript nach dem Beenden angezeigt wird und zur Eingabe von 4 auffordert, sendet es weiterhin die dritte Antwort, die irrelevant ist. Prüft das Skript nicht die Übereinstimmung erwartet Zeichenfolge?
Error :
"No Space. Exiting.
**Path: 1**
cp: cannot create regular file `1': Permission denied
send: spawn id exp5 not open
while executing
"send "path\r""
Das Shell-Skript wird aus verschiedenen Gründen beendet und zum letzten Senden aufgefordert.
Gibt es eine Möglichkeit, die letzte Display-Nachricht expect_out während der Sitzung zu erhalten und sie zu lesen und basierend darauf fortzusetzen.
spawn shellscript
expect_1
send_1
expect_2
send_2
--sh stops and displays exiting...
if expect_out(buffer)=exiting
then
expect_4
send_4
else
expect_3
send_3
expect_4
send_4
exit
Vielleicht mit "fangen" arbeiten? – unNamed
Ich würde darüber nachdenken, den 'expect_before' Befehl zu verwenden, um eine" Error "Nachricht zu sehen. –