預計腳本不會按計劃發送密碼

預計腳本不會按計劃發送密碼

我嘗試閱讀此內容,但我不明白為什麼會發生這種情況。

當 Expect 發送密碼時,它在終端機中顯示為回顯明文,然後顯示「抱歉,請重試」。出現。

腳本如下

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

發送第一個密碼後的終端輸出為:

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

我正在使用 Arch linux 和終端模擬器 Konsole。

答案1

感謝以上所有的輸入。在嘗試了所有建議後,原始腳本突然又開始工作了。當提示輸入密碼時,並且密碼由expect發送,它沒有像以前那樣出現在終端中並被拒絕,它被無形地傳遞到終端並被接受,就像我自己打字一樣。

所以我運行了腳本幾次,1/10 次同樣的問題仍然存在。需要發送三種不同的密碼,哪一種“通過”,哪一種在終端中“回顯”並被拒絕似乎是隨機的。我不知道為什麼會發生這種情況,但我懷疑這與 Expect 和實際腳本沒有什麼關係。

相關內容