Erwartetes Skript sendet Passwort nicht wie geplant

Erwartetes Skript sendet Passwort nicht wie geplant

Ich habe versucht, mich darüber zu informieren, kann aber nicht herausfinden, warum das passiert.

Wenn Expect das Passwort sendet, wird es im Terminal als Klartext angezeigt und anschließend erscheint die Meldung „Entschuldigung, versuchen Sie es noch einmal.“.

Das Skript geht wie folgt

#!/usr/bin/expect -f

spawn bash
send -- "sudo (many tasks)\r"
expect -exact "\[sudo\] password for elade: "
send -- "password\r"
expect -exact "[email protected]'s password: "
send -- "password\r"
expect "@"
send -- "echo Done; sleep 1; exit\r"
expect eof

Die Terminalausgabe nach dem Senden des ersten Passworts lautet:

[sudo] password for elade:
password
Sorry, try again.

Ich verwende Arch Linux und den Terminalemulator Konsole.

Antwort1

Vielen Dank für all die oben genannten Beiträge. Nachdem ich alle Vorschläge ausprobiert hatte, funktionierte das ursprüngliche Skript plötzlich wieder. Als ich nach einem Passwort gefragt wurde und das Passwort per expect gesendet wurde, erschien es nicht wie zuvor im Terminal und wurde abgelehnt, sondern unsichtbar an das Terminal weitergeleitet und akzeptiert, als ob ich es selbst eingegeben hätte.

Ich habe das Skript also ein paar Mal ausgeführt und in einem Zehntel der Fälle blieb das gleiche Problem bestehen. Es müssen drei verschiedene Passwörter gesendet werden, und welches „durchgeht“ und welches im Terminal „echoet“ und abgelehnt wird, scheint zufällig zu sein. Ich weiß nicht, warum das passiert, aber ich vermute, dass es wenig mit Expect und dem eigentlichen Skript zu tun hat.

verwandte Informationen