Espere que el script no envíe la contraseña según lo planeado

Espere que el script no envíe la contraseña según lo planeado

Intenté leer sobre esto, pero no puedo entender por qué sucede.

Cuando Expect envía la contraseña, aparece como texto sin cifrar en el terminal y luego "Lo siento, inténtalo de nuevo". aparece.

El guión es el siguiente

#!/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

La salida del terminal después de enviar la primera contraseña es:

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

Estoy usando Arch Linux y el emulador de terminal Konsole.

Respuesta1

Gracias por todos los aportes anteriores. Después de probar todas las sugerencias, el guión original de repente empezó a funcionar de nuevo. Cuando se me solicitó la contraseña, y la contraseña fue enviada por expect, no apareció en la terminal como antes y fue rechazada, se pasó de manera invisible a la terminal y se aceptó, como si estuviera escribiendo yo mismo.

Así que ejecuté el script varias veces y 1/10 de las veces persistió el mismo problema. Hay tres contraseñas diferentes que deben enviarse, y cuál "pasa" y cuál recibe "repetición" en el terminal y es rechazada parece aleatoria. No sé por qué sucede esto, pero sospecho que tiene poco que ver con Expect y el guión real.

información relacionada