Espere que o script não envie a senha conforme planejado

Espere que o script não envie a senha conforme planejado

Tentei ler sobre isso, mas não consigo entender por que isso está acontecendo.

Quando o Expect envia a senha, ela aparece como texto não criptografado no terminal e depois "Desculpe, tente novamente". parece.

O roteiro é o seguinte

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

A saída do terminal após enviar a primeira senha é:

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

Estou usando o Arch Linux e o emulador de terminal Konsole.

Responder1

Obrigado por todas as contribuições acima. Depois de tentar todas as sugestões, o script original de repente começou a funcionar novamente. Quando solicitada a senha, e a senha foi enviada pelo expect, ela não apareceu no terminal como antes e foi rejeitada, foi passada de forma invisível para o terminal e aceita, como se eu mesmo estivesse digitando.

Então executei o script algumas vezes e 1/10 vezes o mesmo problema ainda persistia. Existem três senhas diferentes que precisam ser enviadas, e qual delas "passa" e qual é "ecoada" no terminal e rejeitada parece aleatória. Não sei por que isso está acontecendo, mas suspeito que tenha pouco a ver com o Expect e o script real.

informação relacionada