erwarten, zu interagieren und dann wieder zu erwarten
Gibt es mehrere Beiträge zu diesem Thema, aber ich noch nicht in der Lage, meine erwarten Skript ordnungsgemäß funktioniert. Meine Absicht ist, alles zu automatisieren, aber lassen Sie das Passwort eingeben für den Benutzer. Also es gibt 3 Teile von dem script:
- automatische Anmeldung
- geben, die Interaktion der Benutzer das Passwort eingeben, das
- geben wird, die Kontrolle zurück zu Erwarten-Skript, um mit der Arbeit fortzufahren,
Also ich habe Skript, die hervorgebracht werden und die 3-lese-Befehle. Erste und Letzte ausgefüllt werden sollen, indem Sie Erwarten, und das zweite würde ich gerne an mein selbst:
#!/bin/ksh
read user?User:
echo "Expect entered the username $user"
read pass?Password:
echo "User entered the password $pass"
read command?"Shell>"
echo "Expect entered the command $command"
Mein erwarten-Skript:
#!/usr/bin/expect
spawn ./some_script
expect User
send I-am-expect\r
expect Password
interact
expect Shell
send I-am-expect-again
Leider nachdem ich das Passwort eingegeben wird das Skript nicht weiter und Links in der Interaktion-Modus:
[root@localhost ~]# ./my-expect
spawn ./some_script
User:I-am-expect
Expect entered the username I-am-expect
Password:i am user
User entered the password i am user
Shell>
Und schließlich, wenn ich in etwas auf das "Shell" und drücken Sie [ENTER], erwarten beendet sich mit der Fehlermeldung:
Expect entered the command
expect: spawn id exp4 not open
while executing
"expect Shell"
(file "./my-expect" line 7)
[root@localhost ~]#
Ich appriciate keine Erklärung oder Lösung dieses Problems. Ich bin mit erwarten-version 5.45
InformationsquelleAutor Petras L | 2015-11-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Lesen (
expect_user
) das Kennwort des Benutzers von sich selbst und dannsend
es um die spawn ' ed Programm. Zum Beispiel:Ich bemerkt, was scheint, ein "escape" für eine eckige Klammer, aber nicht die anderen. Ist das so gewollt? (auf halbem Weg nach unten)
\[\r\n]"
Das open bracket ist das Besondere (tcl.tk/Mann/tcl8.6/TclCmd/Tcl.htm#M11), aber die Klammer nicht. Es würde nicht Schaden, um die Flucht der Klammer, aber es ist nicht unbedingt notwendig.
InformationsquelleAutor pynexj
Den
interact
gegeben werden sollte, mit der richtigen Bedingung für den exit-Kriterien.Dem folgenden Skript wird ausgeführt die Befehle in der shell
exeCmds.sh
automateCmdsExec.exp
Skript
automateCmdsExec.exp
- Adresse wird die Anmeldung benötigt der bash-Skript, und wenn die Aufforderung kommt, es wird von hand über den regler, um user.Sollten wir definieren eine exit-Kriterien für die
interact
für die ich das Wortproceed
. (Sie können ändern, wie pro Ihre Notwendigkeit).Einmal
interact
abgestimmt das Wortproceed
. es kehrt die Steuerung zurück zu dem Skript erwarten.Für demo-Zwecke ist, habe ich immer mehr
send
-expect
paar-Befehl.d.h.
Können Sie Ihre weitere-code unterhalb der
interact
, damit es ausgeführt werden kann per script.InformationsquelleAutor Dinesh